// This file is distributed under the University of Illinois Open Source License.
// See LICENSE.TXT for details.
// 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"
// RUN: cxx_compiler cxx_rtti -c %s -I "common" -o %t2.o
// RUN: linker -o %t2%exeext  %t1.o %t2.o
// RUN: runtool %t2%exeext | checker "TEST PASSED"
#include "testsuite.h"
struct __attribute__((packed)) aBFu7ll_BFu8s_BFu9s { unsigned long long v1:7; unsigned short v2:8; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7ll_BFu8s_C { unsigned long long v1:7; unsigned short v2:8; char v3; };
struct __attribute__((packed)) aBFu7ll_BFu8s_D { unsigned long long v1:7; unsigned short v2:8; double v3; };
struct __attribute__((packed)) aBFu7ll_BFu8s_F { unsigned long long v1:7; unsigned short v2:8; float v3; };
struct __attribute__((packed)) aBFu7ll_BFu8s_I { unsigned long long v1:7; unsigned short v2:8; int v3; };
struct __attribute__((packed)) aBFu7ll_BFu8s_Ip { unsigned long long v1:7; unsigned short v2:8; int * v3; };
struct __attribute__((packed)) aBFu7ll_BFu8s_L { unsigned long long v1:7; unsigned short v2:8; long long v3; };
struct __attribute__((packed)) aBFu7ll_BFu8s_S { unsigned long long v1:7; unsigned short v2:8; short v3; };
struct __attribute__((packed)) aBFu7ll_BFu8s_Uc { unsigned long long v1:7; unsigned short v2:8; unsigned char v3; };
struct __attribute__((packed)) aBFu7ll_BFu8s_Ui { unsigned long long v1:7; unsigned short v2:8; unsigned int v3; };
struct __attribute__((packed)) aBFu7ll_BFu8s_Ul { unsigned long long v1:7; unsigned short v2:8; unsigned long long v3; };
struct __attribute__((packed)) aBFu7ll_BFu8s_Us { unsigned long long v1:7; unsigned short v2:8; unsigned short v3; };
struct __attribute__((packed)) aBFu7ll_BFu8s_Vp { unsigned long long v1:7; unsigned short v2:8; void * v3; };
struct __attribute__((packed)) aBFu7ll_BFu9i { unsigned long long v1:7; unsigned int v2:9; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu15i { unsigned long long v1:7; unsigned int v2:9; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu15ll { unsigned long long v1:7; unsigned int v2:9; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu15s { unsigned long long v1:7; unsigned int v2:9; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu16i { unsigned long long v1:7; unsigned int v2:9; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu16ll { unsigned long long v1:7; unsigned int v2:9; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu16s { unsigned long long v1:7; unsigned int v2:9; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu17i { unsigned long long v1:7; unsigned int v2:9; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu17ll { unsigned long long v1:7; unsigned int v2:9; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu1c { unsigned long long v1:7; unsigned int v2:9; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu1i { unsigned long long v1:7; unsigned int v2:9; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu1ll { unsigned long long v1:7; unsigned int v2:9; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu1s { unsigned long long v1:7; unsigned int v2:9; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu31i { unsigned long long v1:7; unsigned int v2:9; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu31ll { unsigned long long v1:7; unsigned int v2:9; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu32i { unsigned long long v1:7; unsigned int v2:9; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu32ll { unsigned long long v1:7; unsigned int v2:9; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu33 { unsigned long long v1:7; unsigned int v2:9; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu7c { unsigned long long v1:7; unsigned int v2:9; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu7i { unsigned long long v1:7; unsigned int v2:9; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu7ll { unsigned long long v1:7; unsigned int v2:9; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu7s { unsigned long long v1:7; unsigned int v2:9; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu8c { unsigned long long v1:7; unsigned int v2:9; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu8i { unsigned long long v1:7; unsigned int v2:9; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu8ll { unsigned long long v1:7; unsigned int v2:9; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu8s { unsigned long long v1:7; unsigned int v2:9; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu9i { unsigned long long v1:7; unsigned int v2:9; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu9ll { unsigned long long v1:7; unsigned int v2:9; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7ll_BFu9i_BFu9s { unsigned long long v1:7; unsigned int v2:9; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7ll_BFu9i_C { unsigned long long v1:7; unsigned int v2:9; char v3; };
struct __attribute__((packed)) aBFu7ll_BFu9i_D { unsigned long long v1:7; unsigned int v2:9; double v3; };
struct __attribute__((packed)) aBFu7ll_BFu9i_F { unsigned long long v1:7; unsigned int v2:9; float v3; };
struct __attribute__((packed)) aBFu7ll_BFu9i_I { unsigned long long v1:7; unsigned int v2:9; int v3; };
struct __attribute__((packed)) aBFu7ll_BFu9i_Ip { unsigned long long v1:7; unsigned int v2:9; int * v3; };
struct __attribute__((packed)) aBFu7ll_BFu9i_L { unsigned long long v1:7; unsigned int v2:9; long long v3; };
struct __attribute__((packed)) aBFu7ll_BFu9i_S { unsigned long long v1:7; unsigned int v2:9; short v3; };
struct __attribute__((packed)) aBFu7ll_BFu9i_Uc { unsigned long long v1:7; unsigned int v2:9; unsigned char v3; };
struct __attribute__((packed)) aBFu7ll_BFu9i_Ui { unsigned long long v1:7; unsigned int v2:9; unsigned int v3; };
struct __attribute__((packed)) aBFu7ll_BFu9i_Ul { unsigned long long v1:7; unsigned int v2:9; unsigned long long v3; };
struct __attribute__((packed)) aBFu7ll_BFu9i_Us { unsigned long long v1:7; unsigned int v2:9; unsigned short v3; };
struct __attribute__((packed)) aBFu7ll_BFu9i_Vp { unsigned long long v1:7; unsigned int v2:9; void * v3; };
struct __attribute__((packed)) aBFu7ll_BFu9ll { unsigned long long v1:7; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu15i { unsigned long long v1:7; unsigned long long v2:9; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu15ll { unsigned long long v1:7; unsigned long long v2:9; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu15s { unsigned long long v1:7; unsigned long long v2:9; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu16i { unsigned long long v1:7; unsigned long long v2:9; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu16ll { unsigned long long v1:7; unsigned long long v2:9; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu16s { unsigned long long v1:7; unsigned long long v2:9; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu17i { unsigned long long v1:7; unsigned long long v2:9; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu17ll { unsigned long long v1:7; unsigned long long v2:9; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu1c { unsigned long long v1:7; unsigned long long v2:9; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu1i { unsigned long long v1:7; unsigned long long v2:9; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu1ll { unsigned long long v1:7; unsigned long long v2:9; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu1s { unsigned long long v1:7; unsigned long long v2:9; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu31i { unsigned long long v1:7; unsigned long long v2:9; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu31ll { unsigned long long v1:7; unsigned long long v2:9; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu32i { unsigned long long v1:7; unsigned long long v2:9; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu32ll { unsigned long long v1:7; unsigned long long v2:9; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu33 { unsigned long long v1:7; unsigned long long v2:9; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu7c { unsigned long long v1:7; unsigned long long v2:9; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu7i { unsigned long long v1:7; unsigned long long v2:9; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu7ll { unsigned long long v1:7; unsigned long long v2:9; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu7s { unsigned long long v1:7; unsigned long long v2:9; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu8c { unsigned long long v1:7; unsigned long long v2:9; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu8i { unsigned long long v1:7; unsigned long long v2:9; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu8ll { unsigned long long v1:7; unsigned long long v2:9; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu8s { unsigned long long v1:7; unsigned long long v2:9; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu9i { unsigned long long v1:7; unsigned long long v2:9; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu9ll { unsigned long long v1:7; unsigned long long v2:9; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_BFu9s { unsigned long long v1:7; unsigned long long v2:9; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_C { unsigned long long v1:7; unsigned long long v2:9; char v3; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_D { unsigned long long v1:7; unsigned long long v2:9; double v3; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_F { unsigned long long v1:7; unsigned long long v2:9; float v3; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_I { unsigned long long v1:7; unsigned long long v2:9; int v3; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_Ip { unsigned long long v1:7; unsigned long long v2:9; int * v3; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_L { unsigned long long v1:7; unsigned long long v2:9; long long v3; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_S { unsigned long long v1:7; unsigned long long v2:9; short v3; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_Uc { unsigned long long v1:7; unsigned long long v2:9; unsigned char v3; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_Ui { unsigned long long v1:7; unsigned long long v2:9; unsigned int v3; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_Ul { unsigned long long v1:7; unsigned long long v2:9; unsigned long long v3; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_Us { unsigned long long v1:7; unsigned long long v2:9; unsigned short v3; };
struct __attribute__((packed)) aBFu7ll_BFu9ll_Vp { unsigned long long v1:7; unsigned long long v2:9; void * v3; };
struct __attribute__((packed)) aBFu7ll_BFu9s { unsigned long long v1:7; unsigned short v2:9; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu15i { unsigned long long v1:7; unsigned short v2:9; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu15ll { unsigned long long v1:7; unsigned short v2:9; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu15s { unsigned long long v1:7; unsigned short v2:9; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu16i { unsigned long long v1:7; unsigned short v2:9; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu16ll { unsigned long long v1:7; unsigned short v2:9; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu16s { unsigned long long v1:7; unsigned short v2:9; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu17i { unsigned long long v1:7; unsigned short v2:9; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu17ll { unsigned long long v1:7; unsigned short v2:9; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu1c { unsigned long long v1:7; unsigned short v2:9; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu1i { unsigned long long v1:7; unsigned short v2:9; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu1ll { unsigned long long v1:7; unsigned short v2:9; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu1s { unsigned long long v1:7; unsigned short v2:9; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu31i { unsigned long long v1:7; unsigned short v2:9; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu31ll { unsigned long long v1:7; unsigned short v2:9; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu32i { unsigned long long v1:7; unsigned short v2:9; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu32ll { unsigned long long v1:7; unsigned short v2:9; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu33 { unsigned long long v1:7; unsigned short v2:9; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu7c { unsigned long long v1:7; unsigned short v2:9; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu7i { unsigned long long v1:7; unsigned short v2:9; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu7ll { unsigned long long v1:7; unsigned short v2:9; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu7s { unsigned long long v1:7; unsigned short v2:9; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu8c { unsigned long long v1:7; unsigned short v2:9; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu8i { unsigned long long v1:7; unsigned short v2:9; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu8ll { unsigned long long v1:7; unsigned short v2:9; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu8s { unsigned long long v1:7; unsigned short v2:9; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu9i { unsigned long long v1:7; unsigned short v2:9; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu9ll { unsigned long long v1:7; unsigned short v2:9; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7ll_BFu9s_BFu9s { unsigned long long v1:7; unsigned short v2:9; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7ll_BFu9s_C { unsigned long long v1:7; unsigned short v2:9; char v3; };
struct __attribute__((packed)) aBFu7ll_BFu9s_D { unsigned long long v1:7; unsigned short v2:9; double v3; };
struct __attribute__((packed)) aBFu7ll_BFu9s_F { unsigned long long v1:7; unsigned short v2:9; float v3; };
struct __attribute__((packed)) aBFu7ll_BFu9s_I { unsigned long long v1:7; unsigned short v2:9; int v3; };
struct __attribute__((packed)) aBFu7ll_BFu9s_Ip { unsigned long long v1:7; unsigned short v2:9; int * v3; };
struct __attribute__((packed)) aBFu7ll_BFu9s_L { unsigned long long v1:7; unsigned short v2:9; long long v3; };
struct __attribute__((packed)) aBFu7ll_BFu9s_S { unsigned long long v1:7; unsigned short v2:9; short v3; };
struct __attribute__((packed)) aBFu7ll_BFu9s_Uc { unsigned long long v1:7; unsigned short v2:9; unsigned char v3; };
struct __attribute__((packed)) aBFu7ll_BFu9s_Ui { unsigned long long v1:7; unsigned short v2:9; unsigned int v3; };
struct __attribute__((packed)) aBFu7ll_BFu9s_Ul { unsigned long long v1:7; unsigned short v2:9; unsigned long long v3; };
struct __attribute__((packed)) aBFu7ll_BFu9s_Us { unsigned long long v1:7; unsigned short v2:9; unsigned short v3; };
struct __attribute__((packed)) aBFu7ll_BFu9s_Vp { unsigned long long v1:7; unsigned short v2:9; void * v3; };
struct __attribute__((packed)) aBFu7ll_C { unsigned long long v1:7; char v2; };
struct __attribute__((packed)) aBFu7ll_C_BFu15i { unsigned long long v1:7; char v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7ll_C_BFu15ll { unsigned long long v1:7; char v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7ll_C_BFu15s { unsigned long long v1:7; char v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7ll_C_BFu16i { unsigned long long v1:7; char v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7ll_C_BFu16ll { unsigned long long v1:7; char v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7ll_C_BFu16s { unsigned long long v1:7; char v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7ll_C_BFu17i { unsigned long long v1:7; char v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7ll_C_BFu17ll { unsigned long long v1:7; char v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7ll_C_BFu1c { unsigned long long v1:7; char v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7ll_C_BFu1i { unsigned long long v1:7; char v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7ll_C_BFu1ll { unsigned long long v1:7; char v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7ll_C_BFu1s { unsigned long long v1:7; char v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7ll_C_BFu31i { unsigned long long v1:7; char v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7ll_C_BFu31ll { unsigned long long v1:7; char v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7ll_C_BFu32i { unsigned long long v1:7; char v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7ll_C_BFu32ll { unsigned long long v1:7; char v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7ll_C_BFu33 { unsigned long long v1:7; char v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7ll_C_BFu7c { unsigned long long v1:7; char v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7ll_C_BFu7i { unsigned long long v1:7; char v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7ll_C_BFu7ll { unsigned long long v1:7; char v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7ll_C_BFu7s { unsigned long long v1:7; char v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7ll_C_BFu8c { unsigned long long v1:7; char v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7ll_C_BFu8i { unsigned long long v1:7; char v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7ll_C_BFu8ll { unsigned long long v1:7; char v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7ll_C_BFu8s { unsigned long long v1:7; char v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7ll_C_BFu9i { unsigned long long v1:7; char v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7ll_C_BFu9ll { unsigned long long v1:7; char v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7ll_C_BFu9s { unsigned long long v1:7; char v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7ll_C_C { unsigned long long v1:7; char v2; char v3; };
struct __attribute__((packed)) aBFu7ll_C_D { unsigned long long v1:7; char v2; double v3; };
struct __attribute__((packed)) aBFu7ll_C_F { unsigned long long v1:7; char v2; float v3; };
struct __attribute__((packed)) aBFu7ll_C_I { unsigned long long v1:7; char v2; int v3; };
struct __attribute__((packed)) aBFu7ll_C_Ip { unsigned long long v1:7; char v2; int * v3; };
struct __attribute__((packed)) aBFu7ll_C_L { unsigned long long v1:7; char v2; long long v3; };
struct __attribute__((packed)) aBFu7ll_C_S { unsigned long long v1:7; char v2; short v3; };
struct __attribute__((packed)) aBFu7ll_C_Uc { unsigned long long v1:7; char v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7ll_C_Ui { unsigned long long v1:7; char v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7ll_C_Ul { unsigned long long v1:7; char v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7ll_C_Us { unsigned long long v1:7; char v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7ll_C_Vp { unsigned long long v1:7; char v2; void * v3; };
struct __attribute__((packed)) aBFu7ll_D { unsigned long long v1:7; double v2; };
struct __attribute__((packed)) aBFu7ll_D_BFu15i { unsigned long long v1:7; double v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7ll_D_BFu15ll { unsigned long long v1:7; double v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7ll_D_BFu15s { unsigned long long v1:7; double v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7ll_D_BFu16i { unsigned long long v1:7; double v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7ll_D_BFu16ll { unsigned long long v1:7; double v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7ll_D_BFu16s { unsigned long long v1:7; double v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7ll_D_BFu17i { unsigned long long v1:7; double v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7ll_D_BFu17ll { unsigned long long v1:7; double v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7ll_D_BFu1c { unsigned long long v1:7; double v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7ll_D_BFu1i { unsigned long long v1:7; double v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7ll_D_BFu1ll { unsigned long long v1:7; double v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7ll_D_BFu1s { unsigned long long v1:7; double v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7ll_D_BFu31i { unsigned long long v1:7; double v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7ll_D_BFu31ll { unsigned long long v1:7; double v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7ll_D_BFu32i { unsigned long long v1:7; double v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7ll_D_BFu32ll { unsigned long long v1:7; double v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7ll_D_BFu33 { unsigned long long v1:7; double v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7ll_D_BFu7c { unsigned long long v1:7; double v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7ll_D_BFu7i { unsigned long long v1:7; double v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7ll_D_BFu7ll { unsigned long long v1:7; double v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7ll_D_BFu7s { unsigned long long v1:7; double v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7ll_D_BFu8c { unsigned long long v1:7; double v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7ll_D_BFu8i { unsigned long long v1:7; double v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7ll_D_BFu8ll { unsigned long long v1:7; double v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7ll_D_BFu8s { unsigned long long v1:7; double v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7ll_D_BFu9i { unsigned long long v1:7; double v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7ll_D_BFu9ll { unsigned long long v1:7; double v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7ll_D_BFu9s { unsigned long long v1:7; double v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7ll_D_C { unsigned long long v1:7; double v2; char v3; };
struct __attribute__((packed)) aBFu7ll_D_D { unsigned long long v1:7; double v2; double v3; };
struct __attribute__((packed)) aBFu7ll_D_F { unsigned long long v1:7; double v2; float v3; };
struct __attribute__((packed)) aBFu7ll_D_I { unsigned long long v1:7; double v2; int v3; };
struct __attribute__((packed)) aBFu7ll_D_Ip { unsigned long long v1:7; double v2; int * v3; };
struct __attribute__((packed)) aBFu7ll_D_L { unsigned long long v1:7; double v2; long long v3; };
struct __attribute__((packed)) aBFu7ll_D_S { unsigned long long v1:7; double v2; short v3; };
struct __attribute__((packed)) aBFu7ll_D_Uc { unsigned long long v1:7; double v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7ll_D_Ui { unsigned long long v1:7; double v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7ll_D_Ul { unsigned long long v1:7; double v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7ll_D_Us { unsigned long long v1:7; double v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7ll_D_Vp { unsigned long long v1:7; double v2; void * v3; };
struct __attribute__((packed)) aBFu7ll_F { unsigned long long v1:7; float v2; };
struct __attribute__((packed)) aBFu7ll_F_BFu15i { unsigned long long v1:7; float v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7ll_F_BFu15ll { unsigned long long v1:7; float v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7ll_F_BFu15s { unsigned long long v1:7; float v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7ll_F_BFu16i { unsigned long long v1:7; float v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7ll_F_BFu16ll { unsigned long long v1:7; float v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7ll_F_BFu16s { unsigned long long v1:7; float v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7ll_F_BFu17i { unsigned long long v1:7; float v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7ll_F_BFu17ll { unsigned long long v1:7; float v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7ll_F_BFu1c { unsigned long long v1:7; float v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7ll_F_BFu1i { unsigned long long v1:7; float v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7ll_F_BFu1ll { unsigned long long v1:7; float v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7ll_F_BFu1s { unsigned long long v1:7; float v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7ll_F_BFu31i { unsigned long long v1:7; float v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7ll_F_BFu31ll { unsigned long long v1:7; float v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7ll_F_BFu32i { unsigned long long v1:7; float v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7ll_F_BFu32ll { unsigned long long v1:7; float v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7ll_F_BFu33 { unsigned long long v1:7; float v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7ll_F_BFu7c { unsigned long long v1:7; float v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7ll_F_BFu7i { unsigned long long v1:7; float v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7ll_F_BFu7ll { unsigned long long v1:7; float v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7ll_F_BFu7s { unsigned long long v1:7; float v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7ll_F_BFu8c { unsigned long long v1:7; float v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7ll_F_BFu8i { unsigned long long v1:7; float v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7ll_F_BFu8ll { unsigned long long v1:7; float v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7ll_F_BFu8s { unsigned long long v1:7; float v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7ll_F_BFu9i { unsigned long long v1:7; float v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7ll_F_BFu9ll { unsigned long long v1:7; float v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7ll_F_BFu9s { unsigned long long v1:7; float v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7ll_F_C { unsigned long long v1:7; float v2; char v3; };
struct __attribute__((packed)) aBFu7ll_F_D { unsigned long long v1:7; float v2; double v3; };
struct __attribute__((packed)) aBFu7ll_F_F { unsigned long long v1:7; float v2; float v3; };
struct __attribute__((packed)) aBFu7ll_F_I { unsigned long long v1:7; float v2; int v3; };
struct __attribute__((packed)) aBFu7ll_F_Ip { unsigned long long v1:7; float v2; int * v3; };
struct __attribute__((packed)) aBFu7ll_F_L { unsigned long long v1:7; float v2; long long v3; };
struct __attribute__((packed)) aBFu7ll_F_S { unsigned long long v1:7; float v2; short v3; };
struct __attribute__((packed)) aBFu7ll_F_Uc { unsigned long long v1:7; float v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7ll_F_Ui { unsigned long long v1:7; float v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7ll_F_Ul { unsigned long long v1:7; float v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7ll_F_Us { unsigned long long v1:7; float v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7ll_F_Vp { unsigned long long v1:7; float v2; void * v3; };
struct __attribute__((packed)) aBFu7ll_I { unsigned long long v1:7; int v2; };
struct __attribute__((packed)) aBFu7ll_I_BFu15i { unsigned long long v1:7; int v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7ll_I_BFu15ll { unsigned long long v1:7; int v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7ll_I_BFu15s { unsigned long long v1:7; int v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7ll_I_BFu16i { unsigned long long v1:7; int v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7ll_I_BFu16ll { unsigned long long v1:7; int v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7ll_I_BFu16s { unsigned long long v1:7; int v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7ll_I_BFu17i { unsigned long long v1:7; int v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7ll_I_BFu17ll { unsigned long long v1:7; int v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7ll_I_BFu1c { unsigned long long v1:7; int v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7ll_I_BFu1i { unsigned long long v1:7; int v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7ll_I_BFu1ll { unsigned long long v1:7; int v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7ll_I_BFu1s { unsigned long long v1:7; int v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7ll_I_BFu31i { unsigned long long v1:7; int v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7ll_I_BFu31ll { unsigned long long v1:7; int v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7ll_I_BFu32i { unsigned long long v1:7; int v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7ll_I_BFu32ll { unsigned long long v1:7; int v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7ll_I_BFu33 { unsigned long long v1:7; int v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7ll_I_BFu7c { unsigned long long v1:7; int v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7ll_I_BFu7i { unsigned long long v1:7; int v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7ll_I_BFu7ll { unsigned long long v1:7; int v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7ll_I_BFu7s { unsigned long long v1:7; int v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7ll_I_BFu8c { unsigned long long v1:7; int v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7ll_I_BFu8i { unsigned long long v1:7; int v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7ll_I_BFu8ll { unsigned long long v1:7; int v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7ll_I_BFu8s { unsigned long long v1:7; int v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7ll_I_BFu9i { unsigned long long v1:7; int v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7ll_I_BFu9ll { unsigned long long v1:7; int v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7ll_I_BFu9s { unsigned long long v1:7; int v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7ll_I_C { unsigned long long v1:7; int v2; char v3; };
struct __attribute__((packed)) aBFu7ll_I_D { unsigned long long v1:7; int v2; double v3; };
struct __attribute__((packed)) aBFu7ll_I_F { unsigned long long v1:7; int v2; float v3; };
struct __attribute__((packed)) aBFu7ll_I_I { unsigned long long v1:7; int v2; int v3; };
struct __attribute__((packed)) aBFu7ll_I_Ip { unsigned long long v1:7; int v2; int * v3; };
struct __attribute__((packed)) aBFu7ll_I_L { unsigned long long v1:7; int v2; long long v3; };
struct __attribute__((packed)) aBFu7ll_I_S { unsigned long long v1:7; int v2; short v3; };
struct __attribute__((packed)) aBFu7ll_I_Uc { unsigned long long v1:7; int v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7ll_I_Ui { unsigned long long v1:7; int v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7ll_I_Ul { unsigned long long v1:7; int v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7ll_I_Us { unsigned long long v1:7; int v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7ll_I_Vp { unsigned long long v1:7; int v2; void * v3; };
struct __attribute__((packed)) aBFu7ll_Ip { unsigned long long v1:7; int * v2; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu15i { unsigned long long v1:7; int * v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu15ll { unsigned long long v1:7; int * v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu15s { unsigned long long v1:7; int * v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu16i { unsigned long long v1:7; int * v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu16ll { unsigned long long v1:7; int * v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu16s { unsigned long long v1:7; int * v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu17i { unsigned long long v1:7; int * v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu17ll { unsigned long long v1:7; int * v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu1c { unsigned long long v1:7; int * v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu1i { unsigned long long v1:7; int * v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu1ll { unsigned long long v1:7; int * v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu1s { unsigned long long v1:7; int * v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu31i { unsigned long long v1:7; int * v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu31ll { unsigned long long v1:7; int * v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu32i { unsigned long long v1:7; int * v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu32ll { unsigned long long v1:7; int * v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu33 { unsigned long long v1:7; int * v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu7c { unsigned long long v1:7; int * v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu7i { unsigned long long v1:7; int * v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu7ll { unsigned long long v1:7; int * v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu7s { unsigned long long v1:7; int * v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu8c { unsigned long long v1:7; int * v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu8i { unsigned long long v1:7; int * v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu8ll { unsigned long long v1:7; int * v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu8s { unsigned long long v1:7; int * v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu9i { unsigned long long v1:7; int * v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu9ll { unsigned long long v1:7; int * v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7ll_Ip_BFu9s { unsigned long long v1:7; int * v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7ll_Ip_C { unsigned long long v1:7; int * v2; char v3; };
struct __attribute__((packed)) aBFu7ll_Ip_D { unsigned long long v1:7; int * v2; double v3; };
struct __attribute__((packed)) aBFu7ll_Ip_F { unsigned long long v1:7; int * v2; float v3; };
struct __attribute__((packed)) aBFu7ll_Ip_I { unsigned long long v1:7; int * v2; int v3; };
struct __attribute__((packed)) aBFu7ll_Ip_Ip { unsigned long long v1:7; int * v2; int * v3; };
struct __attribute__((packed)) aBFu7ll_Ip_L { unsigned long long v1:7; int * v2; long long v3; };
struct __attribute__((packed)) aBFu7ll_Ip_S { unsigned long long v1:7; int * v2; short v3; };
struct __attribute__((packed)) aBFu7ll_Ip_Uc { unsigned long long v1:7; int * v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7ll_Ip_Ui { unsigned long long v1:7; int * v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7ll_Ip_Ul { unsigned long long v1:7; int * v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7ll_Ip_Us { unsigned long long v1:7; int * v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7ll_Ip_Vp { unsigned long long v1:7; int * v2; void * v3; };
struct __attribute__((packed)) aBFu7ll_L { unsigned long long v1:7; long long v2; };
struct __attribute__((packed)) aBFu7ll_L_BFu15i { unsigned long long v1:7; long long v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7ll_L_BFu15ll { unsigned long long v1:7; long long v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7ll_L_BFu15s { unsigned long long v1:7; long long v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7ll_L_BFu16i { unsigned long long v1:7; long long v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7ll_L_BFu16ll { unsigned long long v1:7; long long v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7ll_L_BFu16s { unsigned long long v1:7; long long v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7ll_L_BFu17i { unsigned long long v1:7; long long v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7ll_L_BFu17ll { unsigned long long v1:7; long long v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7ll_L_BFu1c { unsigned long long v1:7; long long v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7ll_L_BFu1i { unsigned long long v1:7; long long v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7ll_L_BFu1ll { unsigned long long v1:7; long long v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7ll_L_BFu1s { unsigned long long v1:7; long long v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7ll_L_BFu31i { unsigned long long v1:7; long long v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7ll_L_BFu31ll { unsigned long long v1:7; long long v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7ll_L_BFu32i { unsigned long long v1:7; long long v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7ll_L_BFu32ll { unsigned long long v1:7; long long v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7ll_L_BFu33 { unsigned long long v1:7; long long v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7ll_L_BFu7c { unsigned long long v1:7; long long v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7ll_L_BFu7i { unsigned long long v1:7; long long v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7ll_L_BFu7ll { unsigned long long v1:7; long long v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7ll_L_BFu7s { unsigned long long v1:7; long long v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7ll_L_BFu8c { unsigned long long v1:7; long long v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7ll_L_BFu8i { unsigned long long v1:7; long long v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7ll_L_BFu8ll { unsigned long long v1:7; long long v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7ll_L_BFu8s { unsigned long long v1:7; long long v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7ll_L_BFu9i { unsigned long long v1:7; long long v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7ll_L_BFu9ll { unsigned long long v1:7; long long v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7ll_L_BFu9s { unsigned long long v1:7; long long v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7ll_L_C { unsigned long long v1:7; long long v2; char v3; };
struct __attribute__((packed)) aBFu7ll_L_D { unsigned long long v1:7; long long v2; double v3; };
struct __attribute__((packed)) aBFu7ll_L_F { unsigned long long v1:7; long long v2; float v3; };
struct __attribute__((packed)) aBFu7ll_L_I { unsigned long long v1:7; long long v2; int v3; };
struct __attribute__((packed)) aBFu7ll_L_Ip { unsigned long long v1:7; long long v2; int * v3; };
struct __attribute__((packed)) aBFu7ll_L_L { unsigned long long v1:7; long long v2; long long v3; };
struct __attribute__((packed)) aBFu7ll_L_S { unsigned long long v1:7; long long v2; short v3; };
struct __attribute__((packed)) aBFu7ll_L_Uc { unsigned long long v1:7; long long v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7ll_L_Ui { unsigned long long v1:7; long long v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7ll_L_Ul { unsigned long long v1:7; long long v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7ll_L_Us { unsigned long long v1:7; long long v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7ll_L_Vp { unsigned long long v1:7; long long v2; void * v3; };
struct __attribute__((packed)) aBFu7ll_S { unsigned long long v1:7; short v2; };
struct __attribute__((packed)) aBFu7ll_S_BFu15i { unsigned long long v1:7; short v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7ll_S_BFu15ll { unsigned long long v1:7; short v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7ll_S_BFu15s { unsigned long long v1:7; short v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7ll_S_BFu16i { unsigned long long v1:7; short v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7ll_S_BFu16ll { unsigned long long v1:7; short v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7ll_S_BFu16s { unsigned long long v1:7; short v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7ll_S_BFu17i { unsigned long long v1:7; short v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7ll_S_BFu17ll { unsigned long long v1:7; short v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7ll_S_BFu1c { unsigned long long v1:7; short v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7ll_S_BFu1i { unsigned long long v1:7; short v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7ll_S_BFu1ll { unsigned long long v1:7; short v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7ll_S_BFu1s { unsigned long long v1:7; short v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7ll_S_BFu31i { unsigned long long v1:7; short v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7ll_S_BFu31ll { unsigned long long v1:7; short v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7ll_S_BFu32i { unsigned long long v1:7; short v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7ll_S_BFu32ll { unsigned long long v1:7; short v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7ll_S_BFu33 { unsigned long long v1:7; short v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7ll_S_BFu7c { unsigned long long v1:7; short v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7ll_S_BFu7i { unsigned long long v1:7; short v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7ll_S_BFu7ll { unsigned long long v1:7; short v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7ll_S_BFu7s { unsigned long long v1:7; short v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7ll_S_BFu8c { unsigned long long v1:7; short v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7ll_S_BFu8i { unsigned long long v1:7; short v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7ll_S_BFu8ll { unsigned long long v1:7; short v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7ll_S_BFu8s { unsigned long long v1:7; short v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7ll_S_BFu9i { unsigned long long v1:7; short v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7ll_S_BFu9ll { unsigned long long v1:7; short v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7ll_S_BFu9s { unsigned long long v1:7; short v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7ll_S_C { unsigned long long v1:7; short v2; char v3; };
struct __attribute__((packed)) aBFu7ll_S_D { unsigned long long v1:7; short v2; double v3; };
struct __attribute__((packed)) aBFu7ll_S_F { unsigned long long v1:7; short v2; float v3; };
struct __attribute__((packed)) aBFu7ll_S_I { unsigned long long v1:7; short v2; int v3; };
struct __attribute__((packed)) aBFu7ll_S_Ip { unsigned long long v1:7; short v2; int * v3; };
struct __attribute__((packed)) aBFu7ll_S_L { unsigned long long v1:7; short v2; long long v3; };
struct __attribute__((packed)) aBFu7ll_S_S { unsigned long long v1:7; short v2; short v3; };
struct __attribute__((packed)) aBFu7ll_S_Uc { unsigned long long v1:7; short v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7ll_S_Ui { unsigned long long v1:7; short v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7ll_S_Ul { unsigned long long v1:7; short v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7ll_S_Us { unsigned long long v1:7; short v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7ll_S_Vp { unsigned long long v1:7; short v2; void * v3; };
struct __attribute__((packed)) aBFu7ll_Uc { unsigned long long v1:7; unsigned char v2; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu15i { unsigned long long v1:7; unsigned char v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu15ll { unsigned long long v1:7; unsigned char v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu15s { unsigned long long v1:7; unsigned char v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu16i { unsigned long long v1:7; unsigned char v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu16ll { unsigned long long v1:7; unsigned char v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu16s { unsigned long long v1:7; unsigned char v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu17i { unsigned long long v1:7; unsigned char v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu17ll { unsigned long long v1:7; unsigned char v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu1c { unsigned long long v1:7; unsigned char v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu1i { unsigned long long v1:7; unsigned char v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu1ll { unsigned long long v1:7; unsigned char v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu1s { unsigned long long v1:7; unsigned char v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu31i { unsigned long long v1:7; unsigned char v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu31ll { unsigned long long v1:7; unsigned char v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu32i { unsigned long long v1:7; unsigned char v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu32ll { unsigned long long v1:7; unsigned char v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu33 { unsigned long long v1:7; unsigned char v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu7c { unsigned long long v1:7; unsigned char v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu7i { unsigned long long v1:7; unsigned char v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu7ll { unsigned long long v1:7; unsigned char v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu7s { unsigned long long v1:7; unsigned char v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu8c { unsigned long long v1:7; unsigned char v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu8i { unsigned long long v1:7; unsigned char v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu8ll { unsigned long long v1:7; unsigned char v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu8s { unsigned long long v1:7; unsigned char v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu9i { unsigned long long v1:7; unsigned char v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu9ll { unsigned long long v1:7; unsigned char v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7ll_Uc_BFu9s { unsigned long long v1:7; unsigned char v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7ll_Uc_C { unsigned long long v1:7; unsigned char v2; char v3; };
struct __attribute__((packed)) aBFu7ll_Uc_D { unsigned long long v1:7; unsigned char v2; double v3; };
struct __attribute__((packed)) aBFu7ll_Uc_F { unsigned long long v1:7; unsigned char v2; float v3; };
struct __attribute__((packed)) aBFu7ll_Uc_I { unsigned long long v1:7; unsigned char v2; int v3; };
struct __attribute__((packed)) aBFu7ll_Uc_Ip { unsigned long long v1:7; unsigned char v2; int * v3; };
struct __attribute__((packed)) aBFu7ll_Uc_L { unsigned long long v1:7; unsigned char v2; long long v3; };
struct __attribute__((packed)) aBFu7ll_Uc_S { unsigned long long v1:7; unsigned char v2; short v3; };
struct __attribute__((packed)) aBFu7ll_Uc_Uc { unsigned long long v1:7; unsigned char v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7ll_Uc_Ui { unsigned long long v1:7; unsigned char v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7ll_Uc_Ul { unsigned long long v1:7; unsigned char v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7ll_Uc_Us { unsigned long long v1:7; unsigned char v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7ll_Uc_Vp { unsigned long long v1:7; unsigned char v2; void * v3; };
struct __attribute__((packed)) aBFu7ll_Ui { unsigned long long v1:7; unsigned int v2; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu15i { unsigned long long v1:7; unsigned int v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu15ll { unsigned long long v1:7; unsigned int v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu15s { unsigned long long v1:7; unsigned int v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu16i { unsigned long long v1:7; unsigned int v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu16ll { unsigned long long v1:7; unsigned int v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu16s { unsigned long long v1:7; unsigned int v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu17i { unsigned long long v1:7; unsigned int v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu17ll { unsigned long long v1:7; unsigned int v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu1c { unsigned long long v1:7; unsigned int v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu1i { unsigned long long v1:7; unsigned int v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu1ll { unsigned long long v1:7; unsigned int v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu1s { unsigned long long v1:7; unsigned int v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu31i { unsigned long long v1:7; unsigned int v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu31ll { unsigned long long v1:7; unsigned int v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu32i { unsigned long long v1:7; unsigned int v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu32ll { unsigned long long v1:7; unsigned int v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu33 { unsigned long long v1:7; unsigned int v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu7c { unsigned long long v1:7; unsigned int v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu7i { unsigned long long v1:7; unsigned int v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu7ll { unsigned long long v1:7; unsigned int v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu7s { unsigned long long v1:7; unsigned int v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu8c { unsigned long long v1:7; unsigned int v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu8i { unsigned long long v1:7; unsigned int v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu8ll { unsigned long long v1:7; unsigned int v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu8s { unsigned long long v1:7; unsigned int v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu9i { unsigned long long v1:7; unsigned int v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu9ll { unsigned long long v1:7; unsigned int v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7ll_Ui_BFu9s { unsigned long long v1:7; unsigned int v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7ll_Ui_C { unsigned long long v1:7; unsigned int v2; char v3; };
struct __attribute__((packed)) aBFu7ll_Ui_D { unsigned long long v1:7; unsigned int v2; double v3; };
struct __attribute__((packed)) aBFu7ll_Ui_F { unsigned long long v1:7; unsigned int v2; float v3; };
struct __attribute__((packed)) aBFu7ll_Ui_I { unsigned long long v1:7; unsigned int v2; int v3; };
struct __attribute__((packed)) aBFu7ll_Ui_Ip { unsigned long long v1:7; unsigned int v2; int * v3; };
struct __attribute__((packed)) aBFu7ll_Ui_L { unsigned long long v1:7; unsigned int v2; long long v3; };
struct __attribute__((packed)) aBFu7ll_Ui_S { unsigned long long v1:7; unsigned int v2; short v3; };
struct __attribute__((packed)) aBFu7ll_Ui_Uc { unsigned long long v1:7; unsigned int v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7ll_Ui_Ui { unsigned long long v1:7; unsigned int v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7ll_Ui_Ul { unsigned long long v1:7; unsigned int v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7ll_Ui_Us { unsigned long long v1:7; unsigned int v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7ll_Ui_Vp { unsigned long long v1:7; unsigned int v2; void * v3; };
struct __attribute__((packed)) aBFu7ll_Ul { unsigned long long v1:7; unsigned long long v2; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu15i { unsigned long long v1:7; unsigned long long v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu15ll { unsigned long long v1:7; unsigned long long v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu15s { unsigned long long v1:7; unsigned long long v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu16i { unsigned long long v1:7; unsigned long long v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu16ll { unsigned long long v1:7; unsigned long long v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu16s { unsigned long long v1:7; unsigned long long v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu17i { unsigned long long v1:7; unsigned long long v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu17ll { unsigned long long v1:7; unsigned long long v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu1c { unsigned long long v1:7; unsigned long long v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu1i { unsigned long long v1:7; unsigned long long v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu1ll { unsigned long long v1:7; unsigned long long v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu1s { unsigned long long v1:7; unsigned long long v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu31i { unsigned long long v1:7; unsigned long long v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu31ll { unsigned long long v1:7; unsigned long long v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu32i { unsigned long long v1:7; unsigned long long v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu32ll { unsigned long long v1:7; unsigned long long v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu33 { unsigned long long v1:7; unsigned long long v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu7c { unsigned long long v1:7; unsigned long long v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu7i { unsigned long long v1:7; unsigned long long v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu7ll { unsigned long long v1:7; unsigned long long v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu7s { unsigned long long v1:7; unsigned long long v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu8c { unsigned long long v1:7; unsigned long long v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu8i { unsigned long long v1:7; unsigned long long v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu8ll { unsigned long long v1:7; unsigned long long v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu8s { unsigned long long v1:7; unsigned long long v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu9i { unsigned long long v1:7; unsigned long long v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu9ll { unsigned long long v1:7; unsigned long long v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7ll_Ul_BFu9s { unsigned long long v1:7; unsigned long long v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7ll_Ul_C { unsigned long long v1:7; unsigned long long v2; char v3; };
struct __attribute__((packed)) aBFu7ll_Ul_D { unsigned long long v1:7; unsigned long long v2; double v3; };
struct __attribute__((packed)) aBFu7ll_Ul_F { unsigned long long v1:7; unsigned long long v2; float v3; };
struct __attribute__((packed)) aBFu7ll_Ul_I { unsigned long long v1:7; unsigned long long v2; int v3; };
struct __attribute__((packed)) aBFu7ll_Ul_Ip { unsigned long long v1:7; unsigned long long v2; int * v3; };
struct __attribute__((packed)) aBFu7ll_Ul_L { unsigned long long v1:7; unsigned long long v2; long long v3; };
struct __attribute__((packed)) aBFu7ll_Ul_S { unsigned long long v1:7; unsigned long long v2; short v3; };
struct __attribute__((packed)) aBFu7ll_Ul_Uc { unsigned long long v1:7; unsigned long long v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7ll_Ul_Ui { unsigned long long v1:7; unsigned long long v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7ll_Ul_Ul { unsigned long long v1:7; unsigned long long v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7ll_Ul_Us { unsigned long long v1:7; unsigned long long v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7ll_Ul_Vp { unsigned long long v1:7; unsigned long long v2; void * v3; };
struct __attribute__((packed)) aBFu7ll_Us { unsigned long long v1:7; unsigned short v2; };
struct __attribute__((packed)) aBFu7ll_Us_BFu15i { unsigned long long v1:7; unsigned short v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7ll_Us_BFu15ll { unsigned long long v1:7; unsigned short v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7ll_Us_BFu15s { unsigned long long v1:7; unsigned short v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7ll_Us_BFu16i { unsigned long long v1:7; unsigned short v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7ll_Us_BFu16ll { unsigned long long v1:7; unsigned short v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7ll_Us_BFu16s { unsigned long long v1:7; unsigned short v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7ll_Us_BFu17i { unsigned long long v1:7; unsigned short v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7ll_Us_BFu17ll { unsigned long long v1:7; unsigned short v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7ll_Us_BFu1c { unsigned long long v1:7; unsigned short v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7ll_Us_BFu1i { unsigned long long v1:7; unsigned short v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7ll_Us_BFu1ll { unsigned long long v1:7; unsigned short v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7ll_Us_BFu1s { unsigned long long v1:7; unsigned short v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7ll_Us_BFu31i { unsigned long long v1:7; unsigned short v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7ll_Us_BFu31ll { unsigned long long v1:7; unsigned short v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7ll_Us_BFu32i { unsigned long long v1:7; unsigned short v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7ll_Us_BFu32ll { unsigned long long v1:7; unsigned short v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7ll_Us_BFu33 { unsigned long long v1:7; unsigned short v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7ll_Us_BFu7c { unsigned long long v1:7; unsigned short v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7ll_Us_BFu7i { unsigned long long v1:7; unsigned short v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7ll_Us_BFu7ll { unsigned long long v1:7; unsigned short v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7ll_Us_BFu7s { unsigned long long v1:7; unsigned short v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7ll_Us_BFu8c { unsigned long long v1:7; unsigned short v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7ll_Us_BFu8i { unsigned long long v1:7; unsigned short v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7ll_Us_BFu8ll { unsigned long long v1:7; unsigned short v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7ll_Us_BFu8s { unsigned long long v1:7; unsigned short v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7ll_Us_BFu9i { unsigned long long v1:7; unsigned short v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7ll_Us_BFu9ll { unsigned long long v1:7; unsigned short v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7ll_Us_BFu9s { unsigned long long v1:7; unsigned short v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7ll_Us_C { unsigned long long v1:7; unsigned short v2; char v3; };
struct __attribute__((packed)) aBFu7ll_Us_D { unsigned long long v1:7; unsigned short v2; double v3; };
struct __attribute__((packed)) aBFu7ll_Us_F { unsigned long long v1:7; unsigned short v2; float v3; };
struct __attribute__((packed)) aBFu7ll_Us_I { unsigned long long v1:7; unsigned short v2; int v3; };
struct __attribute__((packed)) aBFu7ll_Us_Ip { unsigned long long v1:7; unsigned short v2; int * v3; };
struct __attribute__((packed)) aBFu7ll_Us_L { unsigned long long v1:7; unsigned short v2; long long v3; };
struct __attribute__((packed)) aBFu7ll_Us_S { unsigned long long v1:7; unsigned short v2; short v3; };
struct __attribute__((packed)) aBFu7ll_Us_Uc { unsigned long long v1:7; unsigned short v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7ll_Us_Ui { unsigned long long v1:7; unsigned short v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7ll_Us_Ul { unsigned long long v1:7; unsigned short v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7ll_Us_Us { unsigned long long v1:7; unsigned short v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7ll_Us_Vp { unsigned long long v1:7; unsigned short v2; void * v3; };
struct __attribute__((packed)) aBFu7ll_Vp { unsigned long long v1:7; void * v2; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu15i { unsigned long long v1:7; void * v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu15ll { unsigned long long v1:7; void * v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu15s { unsigned long long v1:7; void * v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu16i { unsigned long long v1:7; void * v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu16ll { unsigned long long v1:7; void * v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu16s { unsigned long long v1:7; void * v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu17i { unsigned long long v1:7; void * v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu17ll { unsigned long long v1:7; void * v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu1c { unsigned long long v1:7; void * v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu1i { unsigned long long v1:7; void * v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu1ll { unsigned long long v1:7; void * v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu1s { unsigned long long v1:7; void * v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu31i { unsigned long long v1:7; void * v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu31ll { unsigned long long v1:7; void * v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu32i { unsigned long long v1:7; void * v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu32ll { unsigned long long v1:7; void * v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu33 { unsigned long long v1:7; void * v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu7c { unsigned long long v1:7; void * v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu7i { unsigned long long v1:7; void * v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu7ll { unsigned long long v1:7; void * v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu7s { unsigned long long v1:7; void * v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu8c { unsigned long long v1:7; void * v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu8i { unsigned long long v1:7; void * v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu8ll { unsigned long long v1:7; void * v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu8s { unsigned long long v1:7; void * v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu9i { unsigned long long v1:7; void * v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu9ll { unsigned long long v1:7; void * v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7ll_Vp_BFu9s { unsigned long long v1:7; void * v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7ll_Vp_C { unsigned long long v1:7; void * v2; char v3; };
struct __attribute__((packed)) aBFu7ll_Vp_D { unsigned long long v1:7; void * v2; double v3; };
struct __attribute__((packed)) aBFu7ll_Vp_F { unsigned long long v1:7; void * v2; float v3; };
struct __attribute__((packed)) aBFu7ll_Vp_I { unsigned long long v1:7; void * v2; int v3; };
struct __attribute__((packed)) aBFu7ll_Vp_Ip { unsigned long long v1:7; void * v2; int * v3; };
struct __attribute__((packed)) aBFu7ll_Vp_L { unsigned long long v1:7; void * v2; long long v3; };
struct __attribute__((packed)) aBFu7ll_Vp_S { unsigned long long v1:7; void * v2; short v3; };
struct __attribute__((packed)) aBFu7ll_Vp_Uc { unsigned long long v1:7; void * v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7ll_Vp_Ui { unsigned long long v1:7; void * v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7ll_Vp_Ul { unsigned long long v1:7; void * v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7ll_Vp_Us { unsigned long long v1:7; void * v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7ll_Vp_Vp { unsigned long long v1:7; void * v2; void * v3; };
struct __attribute__((packed)) aBFu7s { unsigned short v1:7; };
struct __attribute__((packed)) aBFu7s_BFs7c { unsigned short v1:7; signed char v2:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7c { unsigned short v1:7; signed char v2:7; signed char v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7c_BFs7c { unsigned short v1:7; signed char v2:7; signed char v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7c_BFs7i { unsigned short v1:7; signed char v2:7; signed char v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7c_BFs7ll { unsigned short v1:7; signed char v2:7; signed char v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7c_BFs7s { unsigned short v1:7; signed char v2:7; signed char v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7c_BFu7c { unsigned short v1:7; signed char v2:7; signed char v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7c_BFu7i { unsigned short v1:7; signed char v2:7; signed char v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7c_BFu7ll { unsigned short v1:7; signed char v2:7; signed char v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7c_BFu7s { unsigned short v1:7; signed char v2:7; signed char v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7i { unsigned short v1:7; signed char v2:7; signed int v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7i_BFs7c { unsigned short v1:7; signed char v2:7; signed int v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7i_BFs7i { unsigned short v1:7; signed char v2:7; signed int v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7i_BFs7ll { unsigned short v1:7; signed char v2:7; signed int v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7i_BFs7s { unsigned short v1:7; signed char v2:7; signed int v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7i_BFu7c { unsigned short v1:7; signed char v2:7; signed int v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7i_BFu7i { unsigned short v1:7; signed char v2:7; signed int v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7i_BFu7ll { unsigned short v1:7; signed char v2:7; signed int v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7i_BFu7s { unsigned short v1:7; signed char v2:7; signed int v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7ll { unsigned short v1:7; signed char v2:7; signed long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7ll_BFs7c { unsigned short v1:7; signed char v2:7; signed long long v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7ll_BFs7i { unsigned short v1:7; signed char v2:7; signed long long v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7ll_BFs7ll { unsigned short v1:7; signed char v2:7; signed long long v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7ll_BFs7s { unsigned short v1:7; signed char v2:7; signed long long v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7ll_BFu7c { unsigned short v1:7; signed char v2:7; signed long long v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7ll_BFu7i { unsigned short v1:7; signed char v2:7; signed long long v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7ll_BFu7ll { unsigned short v1:7; signed char v2:7; signed long long v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7ll_BFu7s { unsigned short v1:7; signed char v2:7; signed long long v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7s { unsigned short v1:7; signed char v2:7; signed short v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7s_BFs7c { unsigned short v1:7; signed char v2:7; signed short v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7s_BFs7i { unsigned short v1:7; signed char v2:7; signed short v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7s_BFs7ll { unsigned short v1:7; signed char v2:7; signed short v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7s_BFs7s { unsigned short v1:7; signed char v2:7; signed short v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7s_BFu7c { unsigned short v1:7; signed char v2:7; signed short v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7s_BFu7i { unsigned short v1:7; signed char v2:7; signed short v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7s_BFu7ll { unsigned short v1:7; signed char v2:7; signed short v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFs7s_BFu7s { unsigned short v1:7; signed char v2:7; signed short v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7c { unsigned short v1:7; signed char v2:7; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7c_BFs7c { unsigned short v1:7; signed char v2:7; unsigned char v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7c_BFs7i { unsigned short v1:7; signed char v2:7; unsigned char v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7c_BFs7ll { unsigned short v1:7; signed char v2:7; unsigned char v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7c_BFs7s { unsigned short v1:7; signed char v2:7; unsigned char v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7c_BFu7c { unsigned short v1:7; signed char v2:7; unsigned char v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7c_BFu7i { unsigned short v1:7; signed char v2:7; unsigned char v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7c_BFu7ll { unsigned short v1:7; signed char v2:7; unsigned char v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7c_BFu7s { unsigned short v1:7; signed char v2:7; unsigned char v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7i { unsigned short v1:7; signed char v2:7; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7i_BFs7c { unsigned short v1:7; signed char v2:7; unsigned int v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7i_BFs7i { unsigned short v1:7; signed char v2:7; unsigned int v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7i_BFs7ll { unsigned short v1:7; signed char v2:7; unsigned int v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7i_BFs7s { unsigned short v1:7; signed char v2:7; unsigned int v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7i_BFu7c { unsigned short v1:7; signed char v2:7; unsigned int v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7i_BFu7i { unsigned short v1:7; signed char v2:7; unsigned int v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7i_BFu7ll { unsigned short v1:7; signed char v2:7; unsigned int v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7i_BFu7s { unsigned short v1:7; signed char v2:7; unsigned int v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7ll { unsigned short v1:7; signed char v2:7; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7ll_BFs7c { unsigned short v1:7; signed char v2:7; unsigned long long v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7ll_BFs7i { unsigned short v1:7; signed char v2:7; unsigned long long v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7ll_BFs7ll { unsigned short v1:7; signed char v2:7; unsigned long long v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7ll_BFs7s { unsigned short v1:7; signed char v2:7; unsigned long long v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7ll_BFu7c { unsigned short v1:7; signed char v2:7; unsigned long long v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7ll_BFu7i { unsigned short v1:7; signed char v2:7; unsigned long long v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7ll_BFu7ll { unsigned short v1:7; signed char v2:7; unsigned long long v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7ll_BFu7s { unsigned short v1:7; signed char v2:7; unsigned long long v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7s { unsigned short v1:7; signed char v2:7; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7s_BFs7c { unsigned short v1:7; signed char v2:7; unsigned short v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7s_BFs7i { unsigned short v1:7; signed char v2:7; unsigned short v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7s_BFs7ll { unsigned short v1:7; signed char v2:7; unsigned short v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7s_BFs7s { unsigned short v1:7; signed char v2:7; unsigned short v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7s_BFu7c { unsigned short v1:7; signed char v2:7; unsigned short v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7s_BFu7i { unsigned short v1:7; signed char v2:7; unsigned short v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7s_BFu7ll { unsigned short v1:7; signed char v2:7; unsigned short v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7c_BFu7s_BFu7s { unsigned short v1:7; signed char v2:7; unsigned short v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i { unsigned short v1:7; signed int v2:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7c { unsigned short v1:7; signed int v2:7; signed char v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7c_BFs7c { unsigned short v1:7; signed int v2:7; signed char v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7c_BFs7i { unsigned short v1:7; signed int v2:7; signed char v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7c_BFs7ll { unsigned short v1:7; signed int v2:7; signed char v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7c_BFs7s { unsigned short v1:7; signed int v2:7; signed char v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7c_BFu7c { unsigned short v1:7; signed int v2:7; signed char v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7c_BFu7i { unsigned short v1:7; signed int v2:7; signed char v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7c_BFu7ll { unsigned short v1:7; signed int v2:7; signed char v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7c_BFu7s { unsigned short v1:7; signed int v2:7; signed char v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7i { unsigned short v1:7; signed int v2:7; signed int v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7i_BFs7c { unsigned short v1:7; signed int v2:7; signed int v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7i_BFs7i { unsigned short v1:7; signed int v2:7; signed int v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7i_BFs7ll { unsigned short v1:7; signed int v2:7; signed int v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7i_BFs7s { unsigned short v1:7; signed int v2:7; signed int v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7i_BFu7c { unsigned short v1:7; signed int v2:7; signed int v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7i_BFu7i { unsigned short v1:7; signed int v2:7; signed int v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7i_BFu7ll { unsigned short v1:7; signed int v2:7; signed int v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7i_BFu7s { unsigned short v1:7; signed int v2:7; signed int v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7ll { unsigned short v1:7; signed int v2:7; signed long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7ll_BFs7c { unsigned short v1:7; signed int v2:7; signed long long v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7ll_BFs7i { unsigned short v1:7; signed int v2:7; signed long long v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7ll_BFs7ll { unsigned short v1:7; signed int v2:7; signed long long v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7ll_BFs7s { unsigned short v1:7; signed int v2:7; signed long long v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7ll_BFu7c { unsigned short v1:7; signed int v2:7; signed long long v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7ll_BFu7i { unsigned short v1:7; signed int v2:7; signed long long v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7ll_BFu7ll { unsigned short v1:7; signed int v2:7; signed long long v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7ll_BFu7s { unsigned short v1:7; signed int v2:7; signed long long v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7s { unsigned short v1:7; signed int v2:7; signed short v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7s_BFs7c { unsigned short v1:7; signed int v2:7; signed short v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7s_BFs7i { unsigned short v1:7; signed int v2:7; signed short v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7s_BFs7ll { unsigned short v1:7; signed int v2:7; signed short v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7s_BFs7s { unsigned short v1:7; signed int v2:7; signed short v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7s_BFu7c { unsigned short v1:7; signed int v2:7; signed short v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7s_BFu7i { unsigned short v1:7; signed int v2:7; signed short v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7s_BFu7ll { unsigned short v1:7; signed int v2:7; signed short v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFs7s_BFu7s { unsigned short v1:7; signed int v2:7; signed short v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7c { unsigned short v1:7; signed int v2:7; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7c_BFs7c { unsigned short v1:7; signed int v2:7; unsigned char v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7c_BFs7i { unsigned short v1:7; signed int v2:7; unsigned char v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7c_BFs7ll { unsigned short v1:7; signed int v2:7; unsigned char v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7c_BFs7s { unsigned short v1:7; signed int v2:7; unsigned char v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7c_BFu7c { unsigned short v1:7; signed int v2:7; unsigned char v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7c_BFu7i { unsigned short v1:7; signed int v2:7; unsigned char v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7c_BFu7ll { unsigned short v1:7; signed int v2:7; unsigned char v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7c_BFu7s { unsigned short v1:7; signed int v2:7; unsigned char v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7i { unsigned short v1:7; signed int v2:7; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7i_BFs7c { unsigned short v1:7; signed int v2:7; unsigned int v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7i_BFs7i { unsigned short v1:7; signed int v2:7; unsigned int v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7i_BFs7ll { unsigned short v1:7; signed int v2:7; unsigned int v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7i_BFs7s { unsigned short v1:7; signed int v2:7; unsigned int v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7i_BFu7c { unsigned short v1:7; signed int v2:7; unsigned int v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7i_BFu7i { unsigned short v1:7; signed int v2:7; unsigned int v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7i_BFu7ll { unsigned short v1:7; signed int v2:7; unsigned int v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7i_BFu7s { unsigned short v1:7; signed int v2:7; unsigned int v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7ll { unsigned short v1:7; signed int v2:7; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7ll_BFs7c { unsigned short v1:7; signed int v2:7; unsigned long long v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7ll_BFs7i { unsigned short v1:7; signed int v2:7; unsigned long long v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7ll_BFs7ll { unsigned short v1:7; signed int v2:7; unsigned long long v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7ll_BFs7s { unsigned short v1:7; signed int v2:7; unsigned long long v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7ll_BFu7c { unsigned short v1:7; signed int v2:7; unsigned long long v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7ll_BFu7i { unsigned short v1:7; signed int v2:7; unsigned long long v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7ll_BFu7ll { unsigned short v1:7; signed int v2:7; unsigned long long v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7ll_BFu7s { unsigned short v1:7; signed int v2:7; unsigned long long v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7s { unsigned short v1:7; signed int v2:7; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7s_BFs7c { unsigned short v1:7; signed int v2:7; unsigned short v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7s_BFs7i { unsigned short v1:7; signed int v2:7; unsigned short v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7s_BFs7ll { unsigned short v1:7; signed int v2:7; unsigned short v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7s_BFs7s { unsigned short v1:7; signed int v2:7; unsigned short v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7s_BFu7c { unsigned short v1:7; signed int v2:7; unsigned short v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7s_BFu7i { unsigned short v1:7; signed int v2:7; unsigned short v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7s_BFu7ll { unsigned short v1:7; signed int v2:7; unsigned short v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7i_BFu7s_BFu7s { unsigned short v1:7; signed int v2:7; unsigned short v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll { unsigned short v1:7; signed long long v2:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7c { unsigned short v1:7; signed long long v2:7; signed char v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7c_BFs7c { unsigned short v1:7; signed long long v2:7; signed char v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7c_BFs7i { unsigned short v1:7; signed long long v2:7; signed char v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7c_BFs7ll { unsigned short v1:7; signed long long v2:7; signed char v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7c_BFs7s { unsigned short v1:7; signed long long v2:7; signed char v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7c_BFu7c { unsigned short v1:7; signed long long v2:7; signed char v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7c_BFu7i { unsigned short v1:7; signed long long v2:7; signed char v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7c_BFu7ll { unsigned short v1:7; signed long long v2:7; signed char v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7c_BFu7s { unsigned short v1:7; signed long long v2:7; signed char v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7i { unsigned short v1:7; signed long long v2:7; signed int v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7i_BFs7c { unsigned short v1:7; signed long long v2:7; signed int v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7i_BFs7i { unsigned short v1:7; signed long long v2:7; signed int v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7i_BFs7ll { unsigned short v1:7; signed long long v2:7; signed int v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7i_BFs7s { unsigned short v1:7; signed long long v2:7; signed int v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7i_BFu7c { unsigned short v1:7; signed long long v2:7; signed int v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7i_BFu7i { unsigned short v1:7; signed long long v2:7; signed int v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7i_BFu7ll { unsigned short v1:7; signed long long v2:7; signed int v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7i_BFu7s { unsigned short v1:7; signed long long v2:7; signed int v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7ll { unsigned short v1:7; signed long long v2:7; signed long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7ll_BFs7c { unsigned short v1:7; signed long long v2:7; signed long long v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7ll_BFs7i { unsigned short v1:7; signed long long v2:7; signed long long v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7ll_BFs7ll { unsigned short v1:7; signed long long v2:7; signed long long v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7ll_BFs7s { unsigned short v1:7; signed long long v2:7; signed long long v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7ll_BFu7c { unsigned short v1:7; signed long long v2:7; signed long long v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7ll_BFu7i { unsigned short v1:7; signed long long v2:7; signed long long v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7ll_BFu7ll { unsigned short v1:7; signed long long v2:7; signed long long v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7ll_BFu7s { unsigned short v1:7; signed long long v2:7; signed long long v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7s { unsigned short v1:7; signed long long v2:7; signed short v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7s_BFs7c { unsigned short v1:7; signed long long v2:7; signed short v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7s_BFs7i { unsigned short v1:7; signed long long v2:7; signed short v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7s_BFs7ll { unsigned short v1:7; signed long long v2:7; signed short v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7s_BFs7s { unsigned short v1:7; signed long long v2:7; signed short v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7s_BFu7c { unsigned short v1:7; signed long long v2:7; signed short v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7s_BFu7i { unsigned short v1:7; signed long long v2:7; signed short v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7s_BFu7ll { unsigned short v1:7; signed long long v2:7; signed short v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFs7s_BFu7s { unsigned short v1:7; signed long long v2:7; signed short v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7c { unsigned short v1:7; signed long long v2:7; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7c_BFs7c { unsigned short v1:7; signed long long v2:7; unsigned char v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7c_BFs7i { unsigned short v1:7; signed long long v2:7; unsigned char v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7c_BFs7ll { unsigned short v1:7; signed long long v2:7; unsigned char v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7c_BFs7s { unsigned short v1:7; signed long long v2:7; unsigned char v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7c_BFu7c { unsigned short v1:7; signed long long v2:7; unsigned char v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7c_BFu7i { unsigned short v1:7; signed long long v2:7; unsigned char v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7c_BFu7ll { unsigned short v1:7; signed long long v2:7; unsigned char v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7c_BFu7s { unsigned short v1:7; signed long long v2:7; unsigned char v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7i { unsigned short v1:7; signed long long v2:7; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7i_BFs7c { unsigned short v1:7; signed long long v2:7; unsigned int v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7i_BFs7i { unsigned short v1:7; signed long long v2:7; unsigned int v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7i_BFs7ll { unsigned short v1:7; signed long long v2:7; unsigned int v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7i_BFs7s { unsigned short v1:7; signed long long v2:7; unsigned int v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7i_BFu7c { unsigned short v1:7; signed long long v2:7; unsigned int v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7i_BFu7i { unsigned short v1:7; signed long long v2:7; unsigned int v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7i_BFu7ll { unsigned short v1:7; signed long long v2:7; unsigned int v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7i_BFu7s { unsigned short v1:7; signed long long v2:7; unsigned int v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7ll { unsigned short v1:7; signed long long v2:7; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7ll_BFs7c { unsigned short v1:7; signed long long v2:7; unsigned long long v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7ll_BFs7i { unsigned short v1:7; signed long long v2:7; unsigned long long v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7ll_BFs7ll { unsigned short v1:7; signed long long v2:7; unsigned long long v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7ll_BFs7s { unsigned short v1:7; signed long long v2:7; unsigned long long v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7ll_BFu7c { unsigned short v1:7; signed long long v2:7; unsigned long long v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7ll_BFu7i { unsigned short v1:7; signed long long v2:7; unsigned long long v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7ll_BFu7ll { unsigned short v1:7; signed long long v2:7; unsigned long long v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7ll_BFu7s { unsigned short v1:7; signed long long v2:7; unsigned long long v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7s { unsigned short v1:7; signed long long v2:7; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7s_BFs7c { unsigned short v1:7; signed long long v2:7; unsigned short v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7s_BFs7i { unsigned short v1:7; signed long long v2:7; unsigned short v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7s_BFs7ll { unsigned short v1:7; signed long long v2:7; unsigned short v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7s_BFs7s { unsigned short v1:7; signed long long v2:7; unsigned short v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7s_BFu7c { unsigned short v1:7; signed long long v2:7; unsigned short v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7s_BFu7i { unsigned short v1:7; signed long long v2:7; unsigned short v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7s_BFu7ll { unsigned short v1:7; signed long long v2:7; unsigned short v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7ll_BFu7s_BFu7s { unsigned short v1:7; signed long long v2:7; unsigned short v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s { unsigned short v1:7; signed short v2:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7c { unsigned short v1:7; signed short v2:7; signed char v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7c_BFs7c { unsigned short v1:7; signed short v2:7; signed char v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7c_BFs7i { unsigned short v1:7; signed short v2:7; signed char v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7c_BFs7ll { unsigned short v1:7; signed short v2:7; signed char v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7c_BFs7s { unsigned short v1:7; signed short v2:7; signed char v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7c_BFu7c { unsigned short v1:7; signed short v2:7; signed char v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7c_BFu7i { unsigned short v1:7; signed short v2:7; signed char v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7c_BFu7ll { unsigned short v1:7; signed short v2:7; signed char v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7c_BFu7s { unsigned short v1:7; signed short v2:7; signed char v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7i { unsigned short v1:7; signed short v2:7; signed int v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7i_BFs7c { unsigned short v1:7; signed short v2:7; signed int v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7i_BFs7i { unsigned short v1:7; signed short v2:7; signed int v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7i_BFs7ll { unsigned short v1:7; signed short v2:7; signed int v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7i_BFs7s { unsigned short v1:7; signed short v2:7; signed int v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7i_BFu7c { unsigned short v1:7; signed short v2:7; signed int v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7i_BFu7i { unsigned short v1:7; signed short v2:7; signed int v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7i_BFu7ll { unsigned short v1:7; signed short v2:7; signed int v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7i_BFu7s { unsigned short v1:7; signed short v2:7; signed int v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7ll { unsigned short v1:7; signed short v2:7; signed long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7ll_BFs7c { unsigned short v1:7; signed short v2:7; signed long long v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7ll_BFs7i { unsigned short v1:7; signed short v2:7; signed long long v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7ll_BFs7ll { unsigned short v1:7; signed short v2:7; signed long long v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7ll_BFs7s { unsigned short v1:7; signed short v2:7; signed long long v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7ll_BFu7c { unsigned short v1:7; signed short v2:7; signed long long v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7ll_BFu7i { unsigned short v1:7; signed short v2:7; signed long long v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7ll_BFu7ll { unsigned short v1:7; signed short v2:7; signed long long v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7ll_BFu7s { unsigned short v1:7; signed short v2:7; signed long long v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7s { unsigned short v1:7; signed short v2:7; signed short v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7s_BFs7c { unsigned short v1:7; signed short v2:7; signed short v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7s_BFs7i { unsigned short v1:7; signed short v2:7; signed short v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7s_BFs7ll { unsigned short v1:7; signed short v2:7; signed short v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7s_BFs7s { unsigned short v1:7; signed short v2:7; signed short v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7s_BFu7c { unsigned short v1:7; signed short v2:7; signed short v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7s_BFu7i { unsigned short v1:7; signed short v2:7; signed short v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7s_BFu7ll { unsigned short v1:7; signed short v2:7; signed short v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFs7s_BFu7s { unsigned short v1:7; signed short v2:7; signed short v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7c { unsigned short v1:7; signed short v2:7; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7c_BFs7c { unsigned short v1:7; signed short v2:7; unsigned char v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7c_BFs7i { unsigned short v1:7; signed short v2:7; unsigned char v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7c_BFs7ll { unsigned short v1:7; signed short v2:7; unsigned char v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7c_BFs7s { unsigned short v1:7; signed short v2:7; unsigned char v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7c_BFu7c { unsigned short v1:7; signed short v2:7; unsigned char v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7c_BFu7i { unsigned short v1:7; signed short v2:7; unsigned char v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7c_BFu7ll { unsigned short v1:7; signed short v2:7; unsigned char v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7c_BFu7s { unsigned short v1:7; signed short v2:7; unsigned char v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7i { unsigned short v1:7; signed short v2:7; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7i_BFs7c { unsigned short v1:7; signed short v2:7; unsigned int v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7i_BFs7i { unsigned short v1:7; signed short v2:7; unsigned int v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7i_BFs7ll { unsigned short v1:7; signed short v2:7; unsigned int v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7i_BFs7s { unsigned short v1:7; signed short v2:7; unsigned int v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7i_BFu7c { unsigned short v1:7; signed short v2:7; unsigned int v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7i_BFu7i { unsigned short v1:7; signed short v2:7; unsigned int v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7i_BFu7ll { unsigned short v1:7; signed short v2:7; unsigned int v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7i_BFu7s { unsigned short v1:7; signed short v2:7; unsigned int v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7ll { unsigned short v1:7; signed short v2:7; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7ll_BFs7c { unsigned short v1:7; signed short v2:7; unsigned long long v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7ll_BFs7i { unsigned short v1:7; signed short v2:7; unsigned long long v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7ll_BFs7ll { unsigned short v1:7; signed short v2:7; unsigned long long v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7ll_BFs7s { unsigned short v1:7; signed short v2:7; unsigned long long v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7ll_BFu7c { unsigned short v1:7; signed short v2:7; unsigned long long v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7ll_BFu7i { unsigned short v1:7; signed short v2:7; unsigned long long v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7ll_BFu7ll { unsigned short v1:7; signed short v2:7; unsigned long long v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7ll_BFu7s { unsigned short v1:7; signed short v2:7; unsigned long long v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7s { unsigned short v1:7; signed short v2:7; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7s_BFs7c { unsigned short v1:7; signed short v2:7; unsigned short v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7s_BFs7i { unsigned short v1:7; signed short v2:7; unsigned short v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7s_BFs7ll { unsigned short v1:7; signed short v2:7; unsigned short v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7s_BFs7s { unsigned short v1:7; signed short v2:7; unsigned short v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7s_BFu7c { unsigned short v1:7; signed short v2:7; unsigned short v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7s_BFu7i { unsigned short v1:7; signed short v2:7; unsigned short v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7s_BFu7ll { unsigned short v1:7; signed short v2:7; unsigned short v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFs7s_BFu7s_BFu7s { unsigned short v1:7; signed short v2:7; unsigned short v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu15i { unsigned short v1:7; unsigned int v2:15; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu15i { unsigned short v1:7; unsigned int v2:15; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu15ll { unsigned short v1:7; unsigned int v2:15; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu15s { unsigned short v1:7; unsigned int v2:15; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu16i { unsigned short v1:7; unsigned int v2:15; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu16ll { unsigned short v1:7; unsigned int v2:15; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu16s { unsigned short v1:7; unsigned int v2:15; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu17i { unsigned short v1:7; unsigned int v2:15; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu17ll { unsigned short v1:7; unsigned int v2:15; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu1c { unsigned short v1:7; unsigned int v2:15; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu1i { unsigned short v1:7; unsigned int v2:15; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu1ll { unsigned short v1:7; unsigned int v2:15; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu1s { unsigned short v1:7; unsigned int v2:15; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu31i { unsigned short v1:7; unsigned int v2:15; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu31ll { unsigned short v1:7; unsigned int v2:15; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu32i { unsigned short v1:7; unsigned int v2:15; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu32ll { unsigned short v1:7; unsigned int v2:15; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu33 { unsigned short v1:7; unsigned int v2:15; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu7c { unsigned short v1:7; unsigned int v2:15; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu7i { unsigned short v1:7; unsigned int v2:15; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu7ll { unsigned short v1:7; unsigned int v2:15; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu7s { unsigned short v1:7; unsigned int v2:15; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu8c { unsigned short v1:7; unsigned int v2:15; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu8i { unsigned short v1:7; unsigned int v2:15; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu8ll { unsigned short v1:7; unsigned int v2:15; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu8s { unsigned short v1:7; unsigned int v2:15; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu9i { unsigned short v1:7; unsigned int v2:15; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu9ll { unsigned short v1:7; unsigned int v2:15; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu15i_BFu9s { unsigned short v1:7; unsigned int v2:15; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu15i_C { unsigned short v1:7; unsigned int v2:15; char v3; };
struct __attribute__((packed)) aBFu7s_BFu15i_D { unsigned short v1:7; unsigned int v2:15; double v3; };
struct __attribute__((packed)) aBFu7s_BFu15i_F { unsigned short v1:7; unsigned int v2:15; float v3; };
struct __attribute__((packed)) aBFu7s_BFu15i_I { unsigned short v1:7; unsigned int v2:15; int v3; };
struct __attribute__((packed)) aBFu7s_BFu15i_Ip { unsigned short v1:7; unsigned int v2:15; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu15i_L { unsigned short v1:7; unsigned int v2:15; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu15i_S { unsigned short v1:7; unsigned int v2:15; short v3; };
struct __attribute__((packed)) aBFu7s_BFu15i_Uc { unsigned short v1:7; unsigned int v2:15; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu15i_Ui { unsigned short v1:7; unsigned int v2:15; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu15i_Ul { unsigned short v1:7; unsigned int v2:15; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu15i_Us { unsigned short v1:7; unsigned int v2:15; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu15i_Vp { unsigned short v1:7; unsigned int v2:15; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu15ll { unsigned short v1:7; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu15i { unsigned short v1:7; unsigned long long v2:15; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu15ll { unsigned short v1:7; unsigned long long v2:15; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu15s { unsigned short v1:7; unsigned long long v2:15; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu16i { unsigned short v1:7; unsigned long long v2:15; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu16ll { unsigned short v1:7; unsigned long long v2:15; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu16s { unsigned short v1:7; unsigned long long v2:15; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu17i { unsigned short v1:7; unsigned long long v2:15; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu17ll { unsigned short v1:7; unsigned long long v2:15; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu1c { unsigned short v1:7; unsigned long long v2:15; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu1i { unsigned short v1:7; unsigned long long v2:15; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu1ll { unsigned short v1:7; unsigned long long v2:15; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu1s { unsigned short v1:7; unsigned long long v2:15; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu31i { unsigned short v1:7; unsigned long long v2:15; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu31ll { unsigned short v1:7; unsigned long long v2:15; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu32i { unsigned short v1:7; unsigned long long v2:15; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu32ll { unsigned short v1:7; unsigned long long v2:15; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu33 { unsigned short v1:7; unsigned long long v2:15; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu7c { unsigned short v1:7; unsigned long long v2:15; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu7i { unsigned short v1:7; unsigned long long v2:15; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu7ll { unsigned short v1:7; unsigned long long v2:15; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu7s { unsigned short v1:7; unsigned long long v2:15; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu8c { unsigned short v1:7; unsigned long long v2:15; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu8i { unsigned short v1:7; unsigned long long v2:15; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu8ll { unsigned short v1:7; unsigned long long v2:15; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu8s { unsigned short v1:7; unsigned long long v2:15; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu9i { unsigned short v1:7; unsigned long long v2:15; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu9ll { unsigned short v1:7; unsigned long long v2:15; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu15ll_BFu9s { unsigned short v1:7; unsigned long long v2:15; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu15ll_C { unsigned short v1:7; unsigned long long v2:15; char v3; };
struct __attribute__((packed)) aBFu7s_BFu15ll_D { unsigned short v1:7; unsigned long long v2:15; double v3; };
struct __attribute__((packed)) aBFu7s_BFu15ll_F { unsigned short v1:7; unsigned long long v2:15; float v3; };
struct __attribute__((packed)) aBFu7s_BFu15ll_I { unsigned short v1:7; unsigned long long v2:15; int v3; };
struct __attribute__((packed)) aBFu7s_BFu15ll_Ip { unsigned short v1:7; unsigned long long v2:15; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu15ll_L { unsigned short v1:7; unsigned long long v2:15; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu15ll_S { unsigned short v1:7; unsigned long long v2:15; short v3; };
struct __attribute__((packed)) aBFu7s_BFu15ll_Uc { unsigned short v1:7; unsigned long long v2:15; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu15ll_Ui { unsigned short v1:7; unsigned long long v2:15; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu15ll_Ul { unsigned short v1:7; unsigned long long v2:15; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu15ll_Us { unsigned short v1:7; unsigned long long v2:15; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu15ll_Vp { unsigned short v1:7; unsigned long long v2:15; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu15s { unsigned short v1:7; unsigned short v2:15; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu15i { unsigned short v1:7; unsigned short v2:15; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu15ll { unsigned short v1:7; unsigned short v2:15; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu15s { unsigned short v1:7; unsigned short v2:15; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu16i { unsigned short v1:7; unsigned short v2:15; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu16ll { unsigned short v1:7; unsigned short v2:15; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu16s { unsigned short v1:7; unsigned short v2:15; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu17i { unsigned short v1:7; unsigned short v2:15; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu17ll { unsigned short v1:7; unsigned short v2:15; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu1c { unsigned short v1:7; unsigned short v2:15; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu1i { unsigned short v1:7; unsigned short v2:15; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu1ll { unsigned short v1:7; unsigned short v2:15; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu1s { unsigned short v1:7; unsigned short v2:15; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu31i { unsigned short v1:7; unsigned short v2:15; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu31ll { unsigned short v1:7; unsigned short v2:15; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu32i { unsigned short v1:7; unsigned short v2:15; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu32ll { unsigned short v1:7; unsigned short v2:15; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu33 { unsigned short v1:7; unsigned short v2:15; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu7c { unsigned short v1:7; unsigned short v2:15; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu7i { unsigned short v1:7; unsigned short v2:15; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu7ll { unsigned short v1:7; unsigned short v2:15; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu7s { unsigned short v1:7; unsigned short v2:15; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu8c { unsigned short v1:7; unsigned short v2:15; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu8i { unsigned short v1:7; unsigned short v2:15; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu8ll { unsigned short v1:7; unsigned short v2:15; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu8s { unsigned short v1:7; unsigned short v2:15; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu9i { unsigned short v1:7; unsigned short v2:15; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu9ll { unsigned short v1:7; unsigned short v2:15; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu15s_BFu9s { unsigned short v1:7; unsigned short v2:15; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu15s_C { unsigned short v1:7; unsigned short v2:15; char v3; };
struct __attribute__((packed)) aBFu7s_BFu15s_D { unsigned short v1:7; unsigned short v2:15; double v3; };
struct __attribute__((packed)) aBFu7s_BFu15s_F { unsigned short v1:7; unsigned short v2:15; float v3; };
struct __attribute__((packed)) aBFu7s_BFu15s_I { unsigned short v1:7; unsigned short v2:15; int v3; };
struct __attribute__((packed)) aBFu7s_BFu15s_Ip { unsigned short v1:7; unsigned short v2:15; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu15s_L { unsigned short v1:7; unsigned short v2:15; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu15s_S { unsigned short v1:7; unsigned short v2:15; short v3; };
struct __attribute__((packed)) aBFu7s_BFu15s_Uc { unsigned short v1:7; unsigned short v2:15; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu15s_Ui { unsigned short v1:7; unsigned short v2:15; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu15s_Ul { unsigned short v1:7; unsigned short v2:15; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu15s_Us { unsigned short v1:7; unsigned short v2:15; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu15s_Vp { unsigned short v1:7; unsigned short v2:15; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu16i { unsigned short v1:7; unsigned int v2:16; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu15i { unsigned short v1:7; unsigned int v2:16; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu15ll { unsigned short v1:7; unsigned int v2:16; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu15s { unsigned short v1:7; unsigned int v2:16; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu16i { unsigned short v1:7; unsigned int v2:16; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu16ll { unsigned short v1:7; unsigned int v2:16; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu16s { unsigned short v1:7; unsigned int v2:16; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu17i { unsigned short v1:7; unsigned int v2:16; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu17ll { unsigned short v1:7; unsigned int v2:16; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu1c { unsigned short v1:7; unsigned int v2:16; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu1i { unsigned short v1:7; unsigned int v2:16; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu1ll { unsigned short v1:7; unsigned int v2:16; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu1s { unsigned short v1:7; unsigned int v2:16; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu31i { unsigned short v1:7; unsigned int v2:16; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu31ll { unsigned short v1:7; unsigned int v2:16; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu32i { unsigned short v1:7; unsigned int v2:16; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu32ll { unsigned short v1:7; unsigned int v2:16; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu33 { unsigned short v1:7; unsigned int v2:16; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu7c { unsigned short v1:7; unsigned int v2:16; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu7i { unsigned short v1:7; unsigned int v2:16; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu7ll { unsigned short v1:7; unsigned int v2:16; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu7s { unsigned short v1:7; unsigned int v2:16; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu8c { unsigned short v1:7; unsigned int v2:16; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu8i { unsigned short v1:7; unsigned int v2:16; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu8ll { unsigned short v1:7; unsigned int v2:16; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu8s { unsigned short v1:7; unsigned int v2:16; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu9i { unsigned short v1:7; unsigned int v2:16; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu9ll { unsigned short v1:7; unsigned int v2:16; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu16i_BFu9s { unsigned short v1:7; unsigned int v2:16; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu16i_C { unsigned short v1:7; unsigned int v2:16; char v3; };
struct __attribute__((packed)) aBFu7s_BFu16i_D { unsigned short v1:7; unsigned int v2:16; double v3; };
struct __attribute__((packed)) aBFu7s_BFu16i_F { unsigned short v1:7; unsigned int v2:16; float v3; };
struct __attribute__((packed)) aBFu7s_BFu16i_I { unsigned short v1:7; unsigned int v2:16; int v3; };
struct __attribute__((packed)) aBFu7s_BFu16i_Ip { unsigned short v1:7; unsigned int v2:16; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu16i_L { unsigned short v1:7; unsigned int v2:16; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu16i_S { unsigned short v1:7; unsigned int v2:16; short v3; };
struct __attribute__((packed)) aBFu7s_BFu16i_Uc { unsigned short v1:7; unsigned int v2:16; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu16i_Ui { unsigned short v1:7; unsigned int v2:16; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu16i_Ul { unsigned short v1:7; unsigned int v2:16; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu16i_Us { unsigned short v1:7; unsigned int v2:16; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu16i_Vp { unsigned short v1:7; unsigned int v2:16; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu16ll { unsigned short v1:7; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu15i { unsigned short v1:7; unsigned long long v2:16; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu15ll { unsigned short v1:7; unsigned long long v2:16; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu15s { unsigned short v1:7; unsigned long long v2:16; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu16i { unsigned short v1:7; unsigned long long v2:16; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu16ll { unsigned short v1:7; unsigned long long v2:16; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu16s { unsigned short v1:7; unsigned long long v2:16; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu17i { unsigned short v1:7; unsigned long long v2:16; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu17ll { unsigned short v1:7; unsigned long long v2:16; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu1c { unsigned short v1:7; unsigned long long v2:16; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu1i { unsigned short v1:7; unsigned long long v2:16; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu1ll { unsigned short v1:7; unsigned long long v2:16; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu1s { unsigned short v1:7; unsigned long long v2:16; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu31i { unsigned short v1:7; unsigned long long v2:16; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu31ll { unsigned short v1:7; unsigned long long v2:16; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu32i { unsigned short v1:7; unsigned long long v2:16; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu32ll { unsigned short v1:7; unsigned long long v2:16; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu33 { unsigned short v1:7; unsigned long long v2:16; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu7c { unsigned short v1:7; unsigned long long v2:16; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu7i { unsigned short v1:7; unsigned long long v2:16; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu7ll { unsigned short v1:7; unsigned long long v2:16; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu7s { unsigned short v1:7; unsigned long long v2:16; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu8c { unsigned short v1:7; unsigned long long v2:16; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu8i { unsigned short v1:7; unsigned long long v2:16; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu8ll { unsigned short v1:7; unsigned long long v2:16; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu8s { unsigned short v1:7; unsigned long long v2:16; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu9i { unsigned short v1:7; unsigned long long v2:16; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu9ll { unsigned short v1:7; unsigned long long v2:16; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu16ll_BFu9s { unsigned short v1:7; unsigned long long v2:16; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu16ll_C { unsigned short v1:7; unsigned long long v2:16; char v3; };
struct __attribute__((packed)) aBFu7s_BFu16ll_D { unsigned short v1:7; unsigned long long v2:16; double v3; };
struct __attribute__((packed)) aBFu7s_BFu16ll_F { unsigned short v1:7; unsigned long long v2:16; float v3; };
struct __attribute__((packed)) aBFu7s_BFu16ll_I { unsigned short v1:7; unsigned long long v2:16; int v3; };
struct __attribute__((packed)) aBFu7s_BFu16ll_Ip { unsigned short v1:7; unsigned long long v2:16; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu16ll_L { unsigned short v1:7; unsigned long long v2:16; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu16ll_S { unsigned short v1:7; unsigned long long v2:16; short v3; };
struct __attribute__((packed)) aBFu7s_BFu16ll_Uc { unsigned short v1:7; unsigned long long v2:16; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu16ll_Ui { unsigned short v1:7; unsigned long long v2:16; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu16ll_Ul { unsigned short v1:7; unsigned long long v2:16; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu16ll_Us { unsigned short v1:7; unsigned long long v2:16; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu16ll_Vp { unsigned short v1:7; unsigned long long v2:16; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu16s { unsigned short v1:7; unsigned short v2:16; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu15i { unsigned short v1:7; unsigned short v2:16; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu15ll { unsigned short v1:7; unsigned short v2:16; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu15s { unsigned short v1:7; unsigned short v2:16; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu16i { unsigned short v1:7; unsigned short v2:16; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu16ll { unsigned short v1:7; unsigned short v2:16; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu16s { unsigned short v1:7; unsigned short v2:16; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu17i { unsigned short v1:7; unsigned short v2:16; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu17ll { unsigned short v1:7; unsigned short v2:16; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu1c { unsigned short v1:7; unsigned short v2:16; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu1i { unsigned short v1:7; unsigned short v2:16; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu1ll { unsigned short v1:7; unsigned short v2:16; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu1s { unsigned short v1:7; unsigned short v2:16; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu31i { unsigned short v1:7; unsigned short v2:16; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu31ll { unsigned short v1:7; unsigned short v2:16; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu32i { unsigned short v1:7; unsigned short v2:16; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu32ll { unsigned short v1:7; unsigned short v2:16; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu33 { unsigned short v1:7; unsigned short v2:16; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu7c { unsigned short v1:7; unsigned short v2:16; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu7i { unsigned short v1:7; unsigned short v2:16; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu7ll { unsigned short v1:7; unsigned short v2:16; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu7s { unsigned short v1:7; unsigned short v2:16; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu8c { unsigned short v1:7; unsigned short v2:16; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu8i { unsigned short v1:7; unsigned short v2:16; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu8ll { unsigned short v1:7; unsigned short v2:16; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu8s { unsigned short v1:7; unsigned short v2:16; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu9i { unsigned short v1:7; unsigned short v2:16; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu9ll { unsigned short v1:7; unsigned short v2:16; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu16s_BFu9s { unsigned short v1:7; unsigned short v2:16; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu16s_C { unsigned short v1:7; unsigned short v2:16; char v3; };
struct __attribute__((packed)) aBFu7s_BFu16s_D { unsigned short v1:7; unsigned short v2:16; double v3; };
struct __attribute__((packed)) aBFu7s_BFu16s_F { unsigned short v1:7; unsigned short v2:16; float v3; };
struct __attribute__((packed)) aBFu7s_BFu16s_I { unsigned short v1:7; unsigned short v2:16; int v3; };
struct __attribute__((packed)) aBFu7s_BFu16s_Ip { unsigned short v1:7; unsigned short v2:16; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu16s_L { unsigned short v1:7; unsigned short v2:16; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu16s_S { unsigned short v1:7; unsigned short v2:16; short v3; };
struct __attribute__((packed)) aBFu7s_BFu16s_Uc { unsigned short v1:7; unsigned short v2:16; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu16s_Ui { unsigned short v1:7; unsigned short v2:16; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu16s_Ul { unsigned short v1:7; unsigned short v2:16; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu16s_Us { unsigned short v1:7; unsigned short v2:16; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu16s_Vp { unsigned short v1:7; unsigned short v2:16; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu17i { unsigned short v1:7; unsigned int v2:17; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu15i { unsigned short v1:7; unsigned int v2:17; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu15ll { unsigned short v1:7; unsigned int v2:17; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu15s { unsigned short v1:7; unsigned int v2:17; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu16i { unsigned short v1:7; unsigned int v2:17; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu16ll { unsigned short v1:7; unsigned int v2:17; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu16s { unsigned short v1:7; unsigned int v2:17; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu17i { unsigned short v1:7; unsigned int v2:17; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu17ll { unsigned short v1:7; unsigned int v2:17; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu1c { unsigned short v1:7; unsigned int v2:17; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu1i { unsigned short v1:7; unsigned int v2:17; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu1ll { unsigned short v1:7; unsigned int v2:17; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu1s { unsigned short v1:7; unsigned int v2:17; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu31i { unsigned short v1:7; unsigned int v2:17; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu31ll { unsigned short v1:7; unsigned int v2:17; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu32i { unsigned short v1:7; unsigned int v2:17; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu32ll { unsigned short v1:7; unsigned int v2:17; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu33 { unsigned short v1:7; unsigned int v2:17; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu7c { unsigned short v1:7; unsigned int v2:17; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu7i { unsigned short v1:7; unsigned int v2:17; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu7ll { unsigned short v1:7; unsigned int v2:17; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu7s { unsigned short v1:7; unsigned int v2:17; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu8c { unsigned short v1:7; unsigned int v2:17; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu8i { unsigned short v1:7; unsigned int v2:17; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu8ll { unsigned short v1:7; unsigned int v2:17; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu8s { unsigned short v1:7; unsigned int v2:17; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu9i { unsigned short v1:7; unsigned int v2:17; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu9ll { unsigned short v1:7; unsigned int v2:17; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu17i_BFu9s { unsigned short v1:7; unsigned int v2:17; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu17i_C { unsigned short v1:7; unsigned int v2:17; char v3; };
struct __attribute__((packed)) aBFu7s_BFu17i_D { unsigned short v1:7; unsigned int v2:17; double v3; };
struct __attribute__((packed)) aBFu7s_BFu17i_F { unsigned short v1:7; unsigned int v2:17; float v3; };
struct __attribute__((packed)) aBFu7s_BFu17i_I { unsigned short v1:7; unsigned int v2:17; int v3; };
struct __attribute__((packed)) aBFu7s_BFu17i_Ip { unsigned short v1:7; unsigned int v2:17; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu17i_L { unsigned short v1:7; unsigned int v2:17; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu17i_S { unsigned short v1:7; unsigned int v2:17; short v3; };
struct __attribute__((packed)) aBFu7s_BFu17i_Uc { unsigned short v1:7; unsigned int v2:17; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu17i_Ui { unsigned short v1:7; unsigned int v2:17; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu17i_Ul { unsigned short v1:7; unsigned int v2:17; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu17i_Us { unsigned short v1:7; unsigned int v2:17; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu17i_Vp { unsigned short v1:7; unsigned int v2:17; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu17ll { unsigned short v1:7; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu15i { unsigned short v1:7; unsigned long long v2:17; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu15ll { unsigned short v1:7; unsigned long long v2:17; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu15s { unsigned short v1:7; unsigned long long v2:17; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu16i { unsigned short v1:7; unsigned long long v2:17; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu16ll { unsigned short v1:7; unsigned long long v2:17; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu16s { unsigned short v1:7; unsigned long long v2:17; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu17i { unsigned short v1:7; unsigned long long v2:17; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu17ll { unsigned short v1:7; unsigned long long v2:17; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu1c { unsigned short v1:7; unsigned long long v2:17; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu1i { unsigned short v1:7; unsigned long long v2:17; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu1ll { unsigned short v1:7; unsigned long long v2:17; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu1s { unsigned short v1:7; unsigned long long v2:17; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu31i { unsigned short v1:7; unsigned long long v2:17; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu31ll { unsigned short v1:7; unsigned long long v2:17; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu32i { unsigned short v1:7; unsigned long long v2:17; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu32ll { unsigned short v1:7; unsigned long long v2:17; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu33 { unsigned short v1:7; unsigned long long v2:17; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu7c { unsigned short v1:7; unsigned long long v2:17; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu7i { unsigned short v1:7; unsigned long long v2:17; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu7ll { unsigned short v1:7; unsigned long long v2:17; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu7s { unsigned short v1:7; unsigned long long v2:17; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu8c { unsigned short v1:7; unsigned long long v2:17; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu8i { unsigned short v1:7; unsigned long long v2:17; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu8ll { unsigned short v1:7; unsigned long long v2:17; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu8s { unsigned short v1:7; unsigned long long v2:17; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu9i { unsigned short v1:7; unsigned long long v2:17; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu9ll { unsigned short v1:7; unsigned long long v2:17; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu17ll_BFu9s { unsigned short v1:7; unsigned long long v2:17; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu17ll_C { unsigned short v1:7; unsigned long long v2:17; char v3; };
struct __attribute__((packed)) aBFu7s_BFu17ll_D { unsigned short v1:7; unsigned long long v2:17; double v3; };
struct __attribute__((packed)) aBFu7s_BFu17ll_F { unsigned short v1:7; unsigned long long v2:17; float v3; };
struct __attribute__((packed)) aBFu7s_BFu17ll_I { unsigned short v1:7; unsigned long long v2:17; int v3; };
struct __attribute__((packed)) aBFu7s_BFu17ll_Ip { unsigned short v1:7; unsigned long long v2:17; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu17ll_L { unsigned short v1:7; unsigned long long v2:17; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu17ll_S { unsigned short v1:7; unsigned long long v2:17; short v3; };
struct __attribute__((packed)) aBFu7s_BFu17ll_Uc { unsigned short v1:7; unsigned long long v2:17; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu17ll_Ui { unsigned short v1:7; unsigned long long v2:17; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu17ll_Ul { unsigned short v1:7; unsigned long long v2:17; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu17ll_Us { unsigned short v1:7; unsigned long long v2:17; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu17ll_Vp { unsigned short v1:7; unsigned long long v2:17; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu1c { unsigned short v1:7; unsigned char v2:1; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu15i { unsigned short v1:7; unsigned char v2:1; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu15ll { unsigned short v1:7; unsigned char v2:1; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu15s { unsigned short v1:7; unsigned char v2:1; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu16i { unsigned short v1:7; unsigned char v2:1; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu16ll { unsigned short v1:7; unsigned char v2:1; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu16s { unsigned short v1:7; unsigned char v2:1; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu17i { unsigned short v1:7; unsigned char v2:1; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu17ll { unsigned short v1:7; unsigned char v2:1; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu1c { unsigned short v1:7; unsigned char v2:1; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu1i { unsigned short v1:7; unsigned char v2:1; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu1ll { unsigned short v1:7; unsigned char v2:1; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu1s { unsigned short v1:7; unsigned char v2:1; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu31i { unsigned short v1:7; unsigned char v2:1; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu31ll { unsigned short v1:7; unsigned char v2:1; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu32i { unsigned short v1:7; unsigned char v2:1; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu32ll { unsigned short v1:7; unsigned char v2:1; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu33 { unsigned short v1:7; unsigned char v2:1; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu7c { unsigned short v1:7; unsigned char v2:1; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu7i { unsigned short v1:7; unsigned char v2:1; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu7ll { unsigned short v1:7; unsigned char v2:1; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu7s { unsigned short v1:7; unsigned char v2:1; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu8c { unsigned short v1:7; unsigned char v2:1; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu8i { unsigned short v1:7; unsigned char v2:1; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu8ll { unsigned short v1:7; unsigned char v2:1; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu8s { unsigned short v1:7; unsigned char v2:1; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu9i { unsigned short v1:7; unsigned char v2:1; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu9ll { unsigned short v1:7; unsigned char v2:1; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu1c_BFu9s { unsigned short v1:7; unsigned char v2:1; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu1c_C { unsigned short v1:7; unsigned char v2:1; char v3; };
struct __attribute__((packed)) aBFu7s_BFu1c_D { unsigned short v1:7; unsigned char v2:1; double v3; };
struct __attribute__((packed)) aBFu7s_BFu1c_F { unsigned short v1:7; unsigned char v2:1; float v3; };
struct __attribute__((packed)) aBFu7s_BFu1c_I { unsigned short v1:7; unsigned char v2:1; int v3; };
struct __attribute__((packed)) aBFu7s_BFu1c_Ip { unsigned short v1:7; unsigned char v2:1; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu1c_L { unsigned short v1:7; unsigned char v2:1; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu1c_S { unsigned short v1:7; unsigned char v2:1; short v3; };
struct __attribute__((packed)) aBFu7s_BFu1c_Uc { unsigned short v1:7; unsigned char v2:1; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu1c_Ui { unsigned short v1:7; unsigned char v2:1; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu1c_Ul { unsigned short v1:7; unsigned char v2:1; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu1c_Us { unsigned short v1:7; unsigned char v2:1; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu1c_Vp { unsigned short v1:7; unsigned char v2:1; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu1i { unsigned short v1:7; unsigned int v2:1; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu15i { unsigned short v1:7; unsigned int v2:1; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu15ll { unsigned short v1:7; unsigned int v2:1; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu15s { unsigned short v1:7; unsigned int v2:1; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu16i { unsigned short v1:7; unsigned int v2:1; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu16ll { unsigned short v1:7; unsigned int v2:1; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu16s { unsigned short v1:7; unsigned int v2:1; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu17i { unsigned short v1:7; unsigned int v2:1; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu17ll { unsigned short v1:7; unsigned int v2:1; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu1c { unsigned short v1:7; unsigned int v2:1; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu1i { unsigned short v1:7; unsigned int v2:1; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu1ll { unsigned short v1:7; unsigned int v2:1; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu1s { unsigned short v1:7; unsigned int v2:1; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu31i { unsigned short v1:7; unsigned int v2:1; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu31ll { unsigned short v1:7; unsigned int v2:1; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu32i { unsigned short v1:7; unsigned int v2:1; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu32ll { unsigned short v1:7; unsigned int v2:1; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu33 { unsigned short v1:7; unsigned int v2:1; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu7c { unsigned short v1:7; unsigned int v2:1; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu7i { unsigned short v1:7; unsigned int v2:1; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu7ll { unsigned short v1:7; unsigned int v2:1; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu7s { unsigned short v1:7; unsigned int v2:1; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu8c { unsigned short v1:7; unsigned int v2:1; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu8i { unsigned short v1:7; unsigned int v2:1; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu8ll { unsigned short v1:7; unsigned int v2:1; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu8s { unsigned short v1:7; unsigned int v2:1; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu9i { unsigned short v1:7; unsigned int v2:1; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu9ll { unsigned short v1:7; unsigned int v2:1; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu1i_BFu9s { unsigned short v1:7; unsigned int v2:1; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu1i_C { unsigned short v1:7; unsigned int v2:1; char v3; };
struct __attribute__((packed)) aBFu7s_BFu1i_D { unsigned short v1:7; unsigned int v2:1; double v3; };
struct __attribute__((packed)) aBFu7s_BFu1i_F { unsigned short v1:7; unsigned int v2:1; float v3; };
struct __attribute__((packed)) aBFu7s_BFu1i_I { unsigned short v1:7; unsigned int v2:1; int v3; };
struct __attribute__((packed)) aBFu7s_BFu1i_Ip { unsigned short v1:7; unsigned int v2:1; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu1i_L { unsigned short v1:7; unsigned int v2:1; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu1i_S { unsigned short v1:7; unsigned int v2:1; short v3; };
struct __attribute__((packed)) aBFu7s_BFu1i_Uc { unsigned short v1:7; unsigned int v2:1; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu1i_Ui { unsigned short v1:7; unsigned int v2:1; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu1i_Ul { unsigned short v1:7; unsigned int v2:1; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu1i_Us { unsigned short v1:7; unsigned int v2:1; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu1i_Vp { unsigned short v1:7; unsigned int v2:1; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu1ll { unsigned short v1:7; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu15i { unsigned short v1:7; unsigned long long v2:1; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu15ll { unsigned short v1:7; unsigned long long v2:1; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu15s { unsigned short v1:7; unsigned long long v2:1; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu16i { unsigned short v1:7; unsigned long long v2:1; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu16ll { unsigned short v1:7; unsigned long long v2:1; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu16s { unsigned short v1:7; unsigned long long v2:1; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu17i { unsigned short v1:7; unsigned long long v2:1; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu17ll { unsigned short v1:7; unsigned long long v2:1; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu1c { unsigned short v1:7; unsigned long long v2:1; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu1i { unsigned short v1:7; unsigned long long v2:1; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu1ll { unsigned short v1:7; unsigned long long v2:1; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu1s { unsigned short v1:7; unsigned long long v2:1; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu31i { unsigned short v1:7; unsigned long long v2:1; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu31ll { unsigned short v1:7; unsigned long long v2:1; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu32i { unsigned short v1:7; unsigned long long v2:1; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu32ll { unsigned short v1:7; unsigned long long v2:1; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu33 { unsigned short v1:7; unsigned long long v2:1; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu7c { unsigned short v1:7; unsigned long long v2:1; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu7i { unsigned short v1:7; unsigned long long v2:1; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu7ll { unsigned short v1:7; unsigned long long v2:1; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu7s { unsigned short v1:7; unsigned long long v2:1; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu8c { unsigned short v1:7; unsigned long long v2:1; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu8i { unsigned short v1:7; unsigned long long v2:1; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu8ll { unsigned short v1:7; unsigned long long v2:1; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu8s { unsigned short v1:7; unsigned long long v2:1; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu9i { unsigned short v1:7; unsigned long long v2:1; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu9ll { unsigned short v1:7; unsigned long long v2:1; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu1ll_BFu9s { unsigned short v1:7; unsigned long long v2:1; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu1ll_C { unsigned short v1:7; unsigned long long v2:1; char v3; };
struct __attribute__((packed)) aBFu7s_BFu1ll_D { unsigned short v1:7; unsigned long long v2:1; double v3; };
struct __attribute__((packed)) aBFu7s_BFu1ll_F { unsigned short v1:7; unsigned long long v2:1; float v3; };
struct __attribute__((packed)) aBFu7s_BFu1ll_I { unsigned short v1:7; unsigned long long v2:1; int v3; };
struct __attribute__((packed)) aBFu7s_BFu1ll_Ip { unsigned short v1:7; unsigned long long v2:1; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu1ll_L { unsigned short v1:7; unsigned long long v2:1; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu1ll_S { unsigned short v1:7; unsigned long long v2:1; short v3; };
struct __attribute__((packed)) aBFu7s_BFu1ll_Uc { unsigned short v1:7; unsigned long long v2:1; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu1ll_Ui { unsigned short v1:7; unsigned long long v2:1; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu1ll_Ul { unsigned short v1:7; unsigned long long v2:1; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu1ll_Us { unsigned short v1:7; unsigned long long v2:1; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu1ll_Vp { unsigned short v1:7; unsigned long long v2:1; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu1s { unsigned short v1:7; unsigned short v2:1; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu15i { unsigned short v1:7; unsigned short v2:1; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu15ll { unsigned short v1:7; unsigned short v2:1; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu15s { unsigned short v1:7; unsigned short v2:1; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu16i { unsigned short v1:7; unsigned short v2:1; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu16ll { unsigned short v1:7; unsigned short v2:1; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu16s { unsigned short v1:7; unsigned short v2:1; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu17i { unsigned short v1:7; unsigned short v2:1; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu17ll { unsigned short v1:7; unsigned short v2:1; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu1c { unsigned short v1:7; unsigned short v2:1; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu1i { unsigned short v1:7; unsigned short v2:1; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu1ll { unsigned short v1:7; unsigned short v2:1; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu1s { unsigned short v1:7; unsigned short v2:1; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu31i { unsigned short v1:7; unsigned short v2:1; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu31ll { unsigned short v1:7; unsigned short v2:1; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu32i { unsigned short v1:7; unsigned short v2:1; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu32ll { unsigned short v1:7; unsigned short v2:1; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu33 { unsigned short v1:7; unsigned short v2:1; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu7c { unsigned short v1:7; unsigned short v2:1; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu7i { unsigned short v1:7; unsigned short v2:1; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu7ll { unsigned short v1:7; unsigned short v2:1; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu7s { unsigned short v1:7; unsigned short v2:1; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu8c { unsigned short v1:7; unsigned short v2:1; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu8i { unsigned short v1:7; unsigned short v2:1; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu8ll { unsigned short v1:7; unsigned short v2:1; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu8s { unsigned short v1:7; unsigned short v2:1; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu9i { unsigned short v1:7; unsigned short v2:1; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu9ll { unsigned short v1:7; unsigned short v2:1; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu1s_BFu9s { unsigned short v1:7; unsigned short v2:1; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu1s_C { unsigned short v1:7; unsigned short v2:1; char v3; };
struct __attribute__((packed)) aBFu7s_BFu1s_D { unsigned short v1:7; unsigned short v2:1; double v3; };
struct __attribute__((packed)) aBFu7s_BFu1s_F { unsigned short v1:7; unsigned short v2:1; float v3; };
struct __attribute__((packed)) aBFu7s_BFu1s_I { unsigned short v1:7; unsigned short v2:1; int v3; };
struct __attribute__((packed)) aBFu7s_BFu1s_Ip { unsigned short v1:7; unsigned short v2:1; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu1s_L { unsigned short v1:7; unsigned short v2:1; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu1s_S { unsigned short v1:7; unsigned short v2:1; short v3; };
struct __attribute__((packed)) aBFu7s_BFu1s_Uc { unsigned short v1:7; unsigned short v2:1; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu1s_Ui { unsigned short v1:7; unsigned short v2:1; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu1s_Ul { unsigned short v1:7; unsigned short v2:1; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu1s_Us { unsigned short v1:7; unsigned short v2:1; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu1s_Vp { unsigned short v1:7; unsigned short v2:1; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu31i { unsigned short v1:7; unsigned int v2:31; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu15i { unsigned short v1:7; unsigned int v2:31; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu15ll { unsigned short v1:7; unsigned int v2:31; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu15s { unsigned short v1:7; unsigned int v2:31; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu16i { unsigned short v1:7; unsigned int v2:31; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu16ll { unsigned short v1:7; unsigned int v2:31; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu16s { unsigned short v1:7; unsigned int v2:31; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu17i { unsigned short v1:7; unsigned int v2:31; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu17ll { unsigned short v1:7; unsigned int v2:31; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu1c { unsigned short v1:7; unsigned int v2:31; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu1i { unsigned short v1:7; unsigned int v2:31; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu1ll { unsigned short v1:7; unsigned int v2:31; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu1s { unsigned short v1:7; unsigned int v2:31; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu31i { unsigned short v1:7; unsigned int v2:31; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu31ll { unsigned short v1:7; unsigned int v2:31; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu32i { unsigned short v1:7; unsigned int v2:31; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu32ll { unsigned short v1:7; unsigned int v2:31; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu33 { unsigned short v1:7; unsigned int v2:31; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu7c { unsigned short v1:7; unsigned int v2:31; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu7i { unsigned short v1:7; unsigned int v2:31; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu7ll { unsigned short v1:7; unsigned int v2:31; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu7s { unsigned short v1:7; unsigned int v2:31; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu8c { unsigned short v1:7; unsigned int v2:31; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu8i { unsigned short v1:7; unsigned int v2:31; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu8ll { unsigned short v1:7; unsigned int v2:31; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu8s { unsigned short v1:7; unsigned int v2:31; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu9i { unsigned short v1:7; unsigned int v2:31; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu9ll { unsigned short v1:7; unsigned int v2:31; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu31i_BFu9s { unsigned short v1:7; unsigned int v2:31; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu31i_C { unsigned short v1:7; unsigned int v2:31; char v3; };
struct __attribute__((packed)) aBFu7s_BFu31i_D { unsigned short v1:7; unsigned int v2:31; double v3; };
struct __attribute__((packed)) aBFu7s_BFu31i_F { unsigned short v1:7; unsigned int v2:31; float v3; };
struct __attribute__((packed)) aBFu7s_BFu31i_I { unsigned short v1:7; unsigned int v2:31; int v3; };
struct __attribute__((packed)) aBFu7s_BFu31i_Ip { unsigned short v1:7; unsigned int v2:31; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu31i_L { unsigned short v1:7; unsigned int v2:31; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu31i_S { unsigned short v1:7; unsigned int v2:31; short v3; };
struct __attribute__((packed)) aBFu7s_BFu31i_Uc { unsigned short v1:7; unsigned int v2:31; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu31i_Ui { unsigned short v1:7; unsigned int v2:31; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu31i_Ul { unsigned short v1:7; unsigned int v2:31; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu31i_Us { unsigned short v1:7; unsigned int v2:31; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu31i_Vp { unsigned short v1:7; unsigned int v2:31; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu31ll { unsigned short v1:7; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu15i { unsigned short v1:7; unsigned long long v2:31; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu15ll { unsigned short v1:7; unsigned long long v2:31; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu15s { unsigned short v1:7; unsigned long long v2:31; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu16i { unsigned short v1:7; unsigned long long v2:31; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu16ll { unsigned short v1:7; unsigned long long v2:31; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu16s { unsigned short v1:7; unsigned long long v2:31; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu17i { unsigned short v1:7; unsigned long long v2:31; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu17ll { unsigned short v1:7; unsigned long long v2:31; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu1c { unsigned short v1:7; unsigned long long v2:31; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu1i { unsigned short v1:7; unsigned long long v2:31; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu1ll { unsigned short v1:7; unsigned long long v2:31; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu1s { unsigned short v1:7; unsigned long long v2:31; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu31i { unsigned short v1:7; unsigned long long v2:31; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu31ll { unsigned short v1:7; unsigned long long v2:31; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu32i { unsigned short v1:7; unsigned long long v2:31; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu32ll { unsigned short v1:7; unsigned long long v2:31; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu33 { unsigned short v1:7; unsigned long long v2:31; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu7c { unsigned short v1:7; unsigned long long v2:31; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu7i { unsigned short v1:7; unsigned long long v2:31; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu7ll { unsigned short v1:7; unsigned long long v2:31; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu7s { unsigned short v1:7; unsigned long long v2:31; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu8c { unsigned short v1:7; unsigned long long v2:31; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu8i { unsigned short v1:7; unsigned long long v2:31; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu8ll { unsigned short v1:7; unsigned long long v2:31; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu8s { unsigned short v1:7; unsigned long long v2:31; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu9i { unsigned short v1:7; unsigned long long v2:31; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu9ll { unsigned short v1:7; unsigned long long v2:31; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu31ll_BFu9s { unsigned short v1:7; unsigned long long v2:31; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu31ll_C { unsigned short v1:7; unsigned long long v2:31; char v3; };
struct __attribute__((packed)) aBFu7s_BFu31ll_D { unsigned short v1:7; unsigned long long v2:31; double v3; };
struct __attribute__((packed)) aBFu7s_BFu31ll_F { unsigned short v1:7; unsigned long long v2:31; float v3; };
struct __attribute__((packed)) aBFu7s_BFu31ll_I { unsigned short v1:7; unsigned long long v2:31; int v3; };
struct __attribute__((packed)) aBFu7s_BFu31ll_Ip { unsigned short v1:7; unsigned long long v2:31; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu31ll_L { unsigned short v1:7; unsigned long long v2:31; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu31ll_S { unsigned short v1:7; unsigned long long v2:31; short v3; };
struct __attribute__((packed)) aBFu7s_BFu31ll_Uc { unsigned short v1:7; unsigned long long v2:31; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu31ll_Ui { unsigned short v1:7; unsigned long long v2:31; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu31ll_Ul { unsigned short v1:7; unsigned long long v2:31; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu31ll_Us { unsigned short v1:7; unsigned long long v2:31; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu31ll_Vp { unsigned short v1:7; unsigned long long v2:31; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu32i { unsigned short v1:7; unsigned int v2:32; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu15i { unsigned short v1:7; unsigned int v2:32; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu15ll { unsigned short v1:7; unsigned int v2:32; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu15s { unsigned short v1:7; unsigned int v2:32; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu16i { unsigned short v1:7; unsigned int v2:32; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu16ll { unsigned short v1:7; unsigned int v2:32; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu16s { unsigned short v1:7; unsigned int v2:32; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu17i { unsigned short v1:7; unsigned int v2:32; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu17ll { unsigned short v1:7; unsigned int v2:32; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu1c { unsigned short v1:7; unsigned int v2:32; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu1i { unsigned short v1:7; unsigned int v2:32; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu1ll { unsigned short v1:7; unsigned int v2:32; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu1s { unsigned short v1:7; unsigned int v2:32; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu31i { unsigned short v1:7; unsigned int v2:32; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu31ll { unsigned short v1:7; unsigned int v2:32; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu32i { unsigned short v1:7; unsigned int v2:32; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu32ll { unsigned short v1:7; unsigned int v2:32; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu33 { unsigned short v1:7; unsigned int v2:32; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu7c { unsigned short v1:7; unsigned int v2:32; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu7i { unsigned short v1:7; unsigned int v2:32; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu7ll { unsigned short v1:7; unsigned int v2:32; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu7s { unsigned short v1:7; unsigned int v2:32; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu8c { unsigned short v1:7; unsigned int v2:32; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu8i { unsigned short v1:7; unsigned int v2:32; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu8ll { unsigned short v1:7; unsigned int v2:32; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu8s { unsigned short v1:7; unsigned int v2:32; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu9i { unsigned short v1:7; unsigned int v2:32; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu9ll { unsigned short v1:7; unsigned int v2:32; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu32i_BFu9s { unsigned short v1:7; unsigned int v2:32; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu32i_C { unsigned short v1:7; unsigned int v2:32; char v3; };
struct __attribute__((packed)) aBFu7s_BFu32i_D { unsigned short v1:7; unsigned int v2:32; double v3; };
struct __attribute__((packed)) aBFu7s_BFu32i_F { unsigned short v1:7; unsigned int v2:32; float v3; };
struct __attribute__((packed)) aBFu7s_BFu32i_I { unsigned short v1:7; unsigned int v2:32; int v3; };
struct __attribute__((packed)) aBFu7s_BFu32i_Ip { unsigned short v1:7; unsigned int v2:32; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu32i_L { unsigned short v1:7; unsigned int v2:32; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu32i_S { unsigned short v1:7; unsigned int v2:32; short v3; };
struct __attribute__((packed)) aBFu7s_BFu32i_Uc { unsigned short v1:7; unsigned int v2:32; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu32i_Ui { unsigned short v1:7; unsigned int v2:32; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu32i_Ul { unsigned short v1:7; unsigned int v2:32; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu32i_Us { unsigned short v1:7; unsigned int v2:32; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu32i_Vp { unsigned short v1:7; unsigned int v2:32; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu32ll { unsigned short v1:7; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu15i { unsigned short v1:7; unsigned long long v2:32; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu15ll { unsigned short v1:7; unsigned long long v2:32; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu15s { unsigned short v1:7; unsigned long long v2:32; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu16i { unsigned short v1:7; unsigned long long v2:32; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu16ll { unsigned short v1:7; unsigned long long v2:32; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu16s { unsigned short v1:7; unsigned long long v2:32; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu17i { unsigned short v1:7; unsigned long long v2:32; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu17ll { unsigned short v1:7; unsigned long long v2:32; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu1c { unsigned short v1:7; unsigned long long v2:32; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu1i { unsigned short v1:7; unsigned long long v2:32; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu1ll { unsigned short v1:7; unsigned long long v2:32; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu1s { unsigned short v1:7; unsigned long long v2:32; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu31i { unsigned short v1:7; unsigned long long v2:32; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu31ll { unsigned short v1:7; unsigned long long v2:32; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu32i { unsigned short v1:7; unsigned long long v2:32; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu32ll { unsigned short v1:7; unsigned long long v2:32; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu33 { unsigned short v1:7; unsigned long long v2:32; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu7c { unsigned short v1:7; unsigned long long v2:32; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu7i { unsigned short v1:7; unsigned long long v2:32; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu7ll { unsigned short v1:7; unsigned long long v2:32; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu7s { unsigned short v1:7; unsigned long long v2:32; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu8c { unsigned short v1:7; unsigned long long v2:32; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu8i { unsigned short v1:7; unsigned long long v2:32; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu8ll { unsigned short v1:7; unsigned long long v2:32; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu8s { unsigned short v1:7; unsigned long long v2:32; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu9i { unsigned short v1:7; unsigned long long v2:32; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu9ll { unsigned short v1:7; unsigned long long v2:32; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu32ll_BFu9s { unsigned short v1:7; unsigned long long v2:32; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu32ll_C { unsigned short v1:7; unsigned long long v2:32; char v3; };
struct __attribute__((packed)) aBFu7s_BFu32ll_D { unsigned short v1:7; unsigned long long v2:32; double v3; };
struct __attribute__((packed)) aBFu7s_BFu32ll_F { unsigned short v1:7; unsigned long long v2:32; float v3; };
struct __attribute__((packed)) aBFu7s_BFu32ll_I { unsigned short v1:7; unsigned long long v2:32; int v3; };
struct __attribute__((packed)) aBFu7s_BFu32ll_Ip { unsigned short v1:7; unsigned long long v2:32; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu32ll_L { unsigned short v1:7; unsigned long long v2:32; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu32ll_S { unsigned short v1:7; unsigned long long v2:32; short v3; };
struct __attribute__((packed)) aBFu7s_BFu32ll_Uc { unsigned short v1:7; unsigned long long v2:32; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu32ll_Ui { unsigned short v1:7; unsigned long long v2:32; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu32ll_Ul { unsigned short v1:7; unsigned long long v2:32; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu32ll_Us { unsigned short v1:7; unsigned long long v2:32; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu32ll_Vp { unsigned short v1:7; unsigned long long v2:32; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu33 { unsigned short v1:7; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu15i { unsigned short v1:7; unsigned long long v2:33; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu15ll { unsigned short v1:7; unsigned long long v2:33; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu15s { unsigned short v1:7; unsigned long long v2:33; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu16i { unsigned short v1:7; unsigned long long v2:33; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu16ll { unsigned short v1:7; unsigned long long v2:33; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu16s { unsigned short v1:7; unsigned long long v2:33; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu17i { unsigned short v1:7; unsigned long long v2:33; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu17ll { unsigned short v1:7; unsigned long long v2:33; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu1c { unsigned short v1:7; unsigned long long v2:33; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu1i { unsigned short v1:7; unsigned long long v2:33; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu1ll { unsigned short v1:7; unsigned long long v2:33; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu1s { unsigned short v1:7; unsigned long long v2:33; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu31i { unsigned short v1:7; unsigned long long v2:33; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu31ll { unsigned short v1:7; unsigned long long v2:33; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu32i { unsigned short v1:7; unsigned long long v2:33; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu32ll { unsigned short v1:7; unsigned long long v2:33; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu33 { unsigned short v1:7; unsigned long long v2:33; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu7c { unsigned short v1:7; unsigned long long v2:33; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu7i { unsigned short v1:7; unsigned long long v2:33; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu7ll { unsigned short v1:7; unsigned long long v2:33; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu7s { unsigned short v1:7; unsigned long long v2:33; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu8c { unsigned short v1:7; unsigned long long v2:33; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu8i { unsigned short v1:7; unsigned long long v2:33; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu8ll { unsigned short v1:7; unsigned long long v2:33; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu8s { unsigned short v1:7; unsigned long long v2:33; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu9i { unsigned short v1:7; unsigned long long v2:33; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu9ll { unsigned short v1:7; unsigned long long v2:33; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu33_BFu9s { unsigned short v1:7; unsigned long long v2:33; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu33_C { unsigned short v1:7; unsigned long long v2:33; char v3; };
struct __attribute__((packed)) aBFu7s_BFu33_D { unsigned short v1:7; unsigned long long v2:33; double v3; };
struct __attribute__((packed)) aBFu7s_BFu33_F { unsigned short v1:7; unsigned long long v2:33; float v3; };
struct __attribute__((packed)) aBFu7s_BFu33_I { unsigned short v1:7; unsigned long long v2:33; int v3; };
struct __attribute__((packed)) aBFu7s_BFu33_Ip { unsigned short v1:7; unsigned long long v2:33; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu33_L { unsigned short v1:7; unsigned long long v2:33; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu33_S { unsigned short v1:7; unsigned long long v2:33; short v3; };
struct __attribute__((packed)) aBFu7s_BFu33_Uc { unsigned short v1:7; unsigned long long v2:33; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu33_Ui { unsigned short v1:7; unsigned long long v2:33; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu33_Ul { unsigned short v1:7; unsigned long long v2:33; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu33_Us { unsigned short v1:7; unsigned long long v2:33; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu33_Vp { unsigned short v1:7; unsigned long long v2:33; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu7c { unsigned short v1:7; unsigned char v2:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7c { unsigned short v1:7; unsigned char v2:7; signed char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7c_BFs7c { unsigned short v1:7; unsigned char v2:7; signed char v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7c_BFs7i { unsigned short v1:7; unsigned char v2:7; signed char v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7c_BFs7ll { unsigned short v1:7; unsigned char v2:7; signed char v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7c_BFs7s { unsigned short v1:7; unsigned char v2:7; signed char v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7c_BFu7c { unsigned short v1:7; unsigned char v2:7; signed char v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7c_BFu7i { unsigned short v1:7; unsigned char v2:7; signed char v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7c_BFu7ll { unsigned short v1:7; unsigned char v2:7; signed char v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7c_BFu7s { unsigned short v1:7; unsigned char v2:7; signed char v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7i { unsigned short v1:7; unsigned char v2:7; signed int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7i_BFs7c { unsigned short v1:7; unsigned char v2:7; signed int v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7i_BFs7i { unsigned short v1:7; unsigned char v2:7; signed int v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7i_BFs7ll { unsigned short v1:7; unsigned char v2:7; signed int v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7i_BFs7s { unsigned short v1:7; unsigned char v2:7; signed int v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7i_BFu7c { unsigned short v1:7; unsigned char v2:7; signed int v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7i_BFu7i { unsigned short v1:7; unsigned char v2:7; signed int v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7i_BFu7ll { unsigned short v1:7; unsigned char v2:7; signed int v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7i_BFu7s { unsigned short v1:7; unsigned char v2:7; signed int v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7ll { unsigned short v1:7; unsigned char v2:7; signed long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7ll_BFs7c { unsigned short v1:7; unsigned char v2:7; signed long long v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7ll_BFs7i { unsigned short v1:7; unsigned char v2:7; signed long long v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7ll_BFs7ll { unsigned short v1:7; unsigned char v2:7; signed long long v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7ll_BFs7s { unsigned short v1:7; unsigned char v2:7; signed long long v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7ll_BFu7c { unsigned short v1:7; unsigned char v2:7; signed long long v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7ll_BFu7i { unsigned short v1:7; unsigned char v2:7; signed long long v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7ll_BFu7ll { unsigned short v1:7; unsigned char v2:7; signed long long v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7ll_BFu7s { unsigned short v1:7; unsigned char v2:7; signed long long v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7s { unsigned short v1:7; unsigned char v2:7; signed short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7s_BFs7c { unsigned short v1:7; unsigned char v2:7; signed short v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7s_BFs7i { unsigned short v1:7; unsigned char v2:7; signed short v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7s_BFs7ll { unsigned short v1:7; unsigned char v2:7; signed short v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7s_BFs7s { unsigned short v1:7; unsigned char v2:7; signed short v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7s_BFu7c { unsigned short v1:7; unsigned char v2:7; signed short v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7s_BFu7i { unsigned short v1:7; unsigned char v2:7; signed short v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7s_BFu7ll { unsigned short v1:7; unsigned char v2:7; signed short v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFs7s_BFu7s { unsigned short v1:7; unsigned char v2:7; signed short v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu15i { unsigned short v1:7; unsigned char v2:7; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu15ll { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu15s { unsigned short v1:7; unsigned char v2:7; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu16i { unsigned short v1:7; unsigned char v2:7; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu16ll { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu16s { unsigned short v1:7; unsigned char v2:7; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu17i { unsigned short v1:7; unsigned char v2:7; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu17ll { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu1c { unsigned short v1:7; unsigned char v2:7; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu1i { unsigned short v1:7; unsigned char v2:7; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu1ll { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu1s { unsigned short v1:7; unsigned char v2:7; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu31i { unsigned short v1:7; unsigned char v2:7; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu31ll { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu32i { unsigned short v1:7; unsigned char v2:7; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu32ll { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu33 { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7c { unsigned short v1:7; unsigned char v2:7; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7c_BFs7c { unsigned short v1:7; unsigned char v2:7; unsigned char v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7c_BFs7i { unsigned short v1:7; unsigned char v2:7; unsigned char v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7c_BFs7ll { unsigned short v1:7; unsigned char v2:7; unsigned char v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7c_BFs7s { unsigned short v1:7; unsigned char v2:7; unsigned char v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7c_BFu7c { unsigned short v1:7; unsigned char v2:7; unsigned char v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7c_BFu7i { unsigned short v1:7; unsigned char v2:7; unsigned char v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7c_BFu7ll { unsigned short v1:7; unsigned char v2:7; unsigned char v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7c_BFu7s { unsigned short v1:7; unsigned char v2:7; unsigned char v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7i { unsigned short v1:7; unsigned char v2:7; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7i_BFs7c { unsigned short v1:7; unsigned char v2:7; unsigned int v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7i_BFs7i { unsigned short v1:7; unsigned char v2:7; unsigned int v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7i_BFs7ll { unsigned short v1:7; unsigned char v2:7; unsigned int v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7i_BFs7s { unsigned short v1:7; unsigned char v2:7; unsigned int v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7i_BFu7c { unsigned short v1:7; unsigned char v2:7; unsigned int v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7i_BFu7i { unsigned short v1:7; unsigned char v2:7; unsigned int v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7i_BFu7ll { unsigned short v1:7; unsigned char v2:7; unsigned int v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7i_BFu7s { unsigned short v1:7; unsigned char v2:7; unsigned int v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7ll { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7ll_BFs7c { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7ll_BFs7i { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7ll_BFs7ll { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7ll_BFs7s { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7ll_BFu7c { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7ll_BFu7i { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7ll_BFu7ll { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7ll_BFu7s { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7s { unsigned short v1:7; unsigned char v2:7; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7s_BFs7c { unsigned short v1:7; unsigned char v2:7; unsigned short v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7s_BFs7i { unsigned short v1:7; unsigned char v2:7; unsigned short v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7s_BFs7ll { unsigned short v1:7; unsigned char v2:7; unsigned short v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7s_BFs7s { unsigned short v1:7; unsigned char v2:7; unsigned short v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7s_BFu7c { unsigned short v1:7; unsigned char v2:7; unsigned short v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7s_BFu7i { unsigned short v1:7; unsigned char v2:7; unsigned short v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7s_BFu7ll { unsigned short v1:7; unsigned char v2:7; unsigned short v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu7s_BFu7s { unsigned short v1:7; unsigned char v2:7; unsigned short v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu8c { unsigned short v1:7; unsigned char v2:7; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu8i { unsigned short v1:7; unsigned char v2:7; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu8ll { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu8s { unsigned short v1:7; unsigned char v2:7; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu9i { unsigned short v1:7; unsigned char v2:7; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu9ll { unsigned short v1:7; unsigned char v2:7; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu7c_BFu9s { unsigned short v1:7; unsigned char v2:7; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu7c_C { unsigned short v1:7; unsigned char v2:7; char v3; };
struct __attribute__((packed)) aBFu7s_BFu7c_D { unsigned short v1:7; unsigned char v2:7; double v3; };
struct __attribute__((packed)) aBFu7s_BFu7c_F { unsigned short v1:7; unsigned char v2:7; float v3; };
struct __attribute__((packed)) aBFu7s_BFu7c_I { unsigned short v1:7; unsigned char v2:7; int v3; };
struct __attribute__((packed)) aBFu7s_BFu7c_Ip { unsigned short v1:7; unsigned char v2:7; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu7c_L { unsigned short v1:7; unsigned char v2:7; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu7c_S { unsigned short v1:7; unsigned char v2:7; short v3; };
struct __attribute__((packed)) aBFu7s_BFu7c_Uc { unsigned short v1:7; unsigned char v2:7; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu7c_Ui { unsigned short v1:7; unsigned char v2:7; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu7c_Ul { unsigned short v1:7; unsigned char v2:7; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu7c_Us { unsigned short v1:7; unsigned char v2:7; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu7c_Vp { unsigned short v1:7; unsigned char v2:7; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu7i { unsigned short v1:7; unsigned int v2:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7c { unsigned short v1:7; unsigned int v2:7; signed char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7c_BFs7c { unsigned short v1:7; unsigned int v2:7; signed char v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7c_BFs7i { unsigned short v1:7; unsigned int v2:7; signed char v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7c_BFs7ll { unsigned short v1:7; unsigned int v2:7; signed char v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7c_BFs7s { unsigned short v1:7; unsigned int v2:7; signed char v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7c_BFu7c { unsigned short v1:7; unsigned int v2:7; signed char v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7c_BFu7i { unsigned short v1:7; unsigned int v2:7; signed char v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7c_BFu7ll { unsigned short v1:7; unsigned int v2:7; signed char v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7c_BFu7s { unsigned short v1:7; unsigned int v2:7; signed char v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7i { unsigned short v1:7; unsigned int v2:7; signed int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7i_BFs7c { unsigned short v1:7; unsigned int v2:7; signed int v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7i_BFs7i { unsigned short v1:7; unsigned int v2:7; signed int v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7i_BFs7ll { unsigned short v1:7; unsigned int v2:7; signed int v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7i_BFs7s { unsigned short v1:7; unsigned int v2:7; signed int v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7i_BFu7c { unsigned short v1:7; unsigned int v2:7; signed int v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7i_BFu7i { unsigned short v1:7; unsigned int v2:7; signed int v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7i_BFu7ll { unsigned short v1:7; unsigned int v2:7; signed int v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7i_BFu7s { unsigned short v1:7; unsigned int v2:7; signed int v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7ll { unsigned short v1:7; unsigned int v2:7; signed long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7ll_BFs7c { unsigned short v1:7; unsigned int v2:7; signed long long v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7ll_BFs7i { unsigned short v1:7; unsigned int v2:7; signed long long v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7ll_BFs7ll { unsigned short v1:7; unsigned int v2:7; signed long long v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7ll_BFs7s { unsigned short v1:7; unsigned int v2:7; signed long long v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7ll_BFu7c { unsigned short v1:7; unsigned int v2:7; signed long long v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7ll_BFu7i { unsigned short v1:7; unsigned int v2:7; signed long long v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7ll_BFu7ll { unsigned short v1:7; unsigned int v2:7; signed long long v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7ll_BFu7s { unsigned short v1:7; unsigned int v2:7; signed long long v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7s { unsigned short v1:7; unsigned int v2:7; signed short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7s_BFs7c { unsigned short v1:7; unsigned int v2:7; signed short v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7s_BFs7i { unsigned short v1:7; unsigned int v2:7; signed short v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7s_BFs7ll { unsigned short v1:7; unsigned int v2:7; signed short v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7s_BFs7s { unsigned short v1:7; unsigned int v2:7; signed short v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7s_BFu7c { unsigned short v1:7; unsigned int v2:7; signed short v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7s_BFu7i { unsigned short v1:7; unsigned int v2:7; signed short v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7s_BFu7ll { unsigned short v1:7; unsigned int v2:7; signed short v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFs7s_BFu7s { unsigned short v1:7; unsigned int v2:7; signed short v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu15i { unsigned short v1:7; unsigned int v2:7; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu15ll { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu15s { unsigned short v1:7; unsigned int v2:7; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu16i { unsigned short v1:7; unsigned int v2:7; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu16ll { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu16s { unsigned short v1:7; unsigned int v2:7; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu17i { unsigned short v1:7; unsigned int v2:7; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu17ll { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu1c { unsigned short v1:7; unsigned int v2:7; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu1i { unsigned short v1:7; unsigned int v2:7; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu1ll { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu1s { unsigned short v1:7; unsigned int v2:7; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu31i { unsigned short v1:7; unsigned int v2:7; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu31ll { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu32i { unsigned short v1:7; unsigned int v2:7; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu32ll { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu33 { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7c { unsigned short v1:7; unsigned int v2:7; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7c_BFs7c { unsigned short v1:7; unsigned int v2:7; unsigned char v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7c_BFs7i { unsigned short v1:7; unsigned int v2:7; unsigned char v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7c_BFs7ll { unsigned short v1:7; unsigned int v2:7; unsigned char v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7c_BFs7s { unsigned short v1:7; unsigned int v2:7; unsigned char v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7c_BFu7c { unsigned short v1:7; unsigned int v2:7; unsigned char v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7c_BFu7i { unsigned short v1:7; unsigned int v2:7; unsigned char v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7c_BFu7ll { unsigned short v1:7; unsigned int v2:7; unsigned char v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7c_BFu7s { unsigned short v1:7; unsigned int v2:7; unsigned char v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7i { unsigned short v1:7; unsigned int v2:7; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7i_BFs7c { unsigned short v1:7; unsigned int v2:7; unsigned int v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7i_BFs7i { unsigned short v1:7; unsigned int v2:7; unsigned int v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7i_BFs7ll { unsigned short v1:7; unsigned int v2:7; unsigned int v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7i_BFs7s { unsigned short v1:7; unsigned int v2:7; unsigned int v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7i_BFu7c { unsigned short v1:7; unsigned int v2:7; unsigned int v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7i_BFu7i { unsigned short v1:7; unsigned int v2:7; unsigned int v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7i_BFu7ll { unsigned short v1:7; unsigned int v2:7; unsigned int v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7i_BFu7s { unsigned short v1:7; unsigned int v2:7; unsigned int v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7ll { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7ll_BFs7c { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7ll_BFs7i { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7ll_BFs7ll { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7ll_BFs7s { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7ll_BFu7c { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7ll_BFu7i { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7ll_BFu7ll { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7ll_BFu7s { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7s { unsigned short v1:7; unsigned int v2:7; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7s_BFs7c { unsigned short v1:7; unsigned int v2:7; unsigned short v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7s_BFs7i { unsigned short v1:7; unsigned int v2:7; unsigned short v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7s_BFs7ll { unsigned short v1:7; unsigned int v2:7; unsigned short v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7s_BFs7s { unsigned short v1:7; unsigned int v2:7; unsigned short v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7s_BFu7c { unsigned short v1:7; unsigned int v2:7; unsigned short v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7s_BFu7i { unsigned short v1:7; unsigned int v2:7; unsigned short v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7s_BFu7ll { unsigned short v1:7; unsigned int v2:7; unsigned short v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu7s_BFu7s { unsigned short v1:7; unsigned int v2:7; unsigned short v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu8c { unsigned short v1:7; unsigned int v2:7; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu8i { unsigned short v1:7; unsigned int v2:7; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu8ll { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu8s { unsigned short v1:7; unsigned int v2:7; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu9i { unsigned short v1:7; unsigned int v2:7; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu9ll { unsigned short v1:7; unsigned int v2:7; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu7i_BFu9s { unsigned short v1:7; unsigned int v2:7; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu7i_C { unsigned short v1:7; unsigned int v2:7; char v3; };
struct __attribute__((packed)) aBFu7s_BFu7i_D { unsigned short v1:7; unsigned int v2:7; double v3; };
struct __attribute__((packed)) aBFu7s_BFu7i_F { unsigned short v1:7; unsigned int v2:7; float v3; };
struct __attribute__((packed)) aBFu7s_BFu7i_I { unsigned short v1:7; unsigned int v2:7; int v3; };
struct __attribute__((packed)) aBFu7s_BFu7i_Ip { unsigned short v1:7; unsigned int v2:7; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu7i_L { unsigned short v1:7; unsigned int v2:7; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu7i_S { unsigned short v1:7; unsigned int v2:7; short v3; };
struct __attribute__((packed)) aBFu7s_BFu7i_Uc { unsigned short v1:7; unsigned int v2:7; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu7i_Ui { unsigned short v1:7; unsigned int v2:7; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu7i_Ul { unsigned short v1:7; unsigned int v2:7; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu7i_Us { unsigned short v1:7; unsigned int v2:7; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu7i_Vp { unsigned short v1:7; unsigned int v2:7; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu7ll { unsigned short v1:7; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7c { unsigned short v1:7; unsigned long long v2:7; signed char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7c_BFs7c { unsigned short v1:7; unsigned long long v2:7; signed char v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7c_BFs7i { unsigned short v1:7; unsigned long long v2:7; signed char v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7c_BFs7ll { unsigned short v1:7; unsigned long long v2:7; signed char v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7c_BFs7s { unsigned short v1:7; unsigned long long v2:7; signed char v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7c_BFu7c { unsigned short v1:7; unsigned long long v2:7; signed char v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7c_BFu7i { unsigned short v1:7; unsigned long long v2:7; signed char v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7c_BFu7ll { unsigned short v1:7; unsigned long long v2:7; signed char v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7c_BFu7s { unsigned short v1:7; unsigned long long v2:7; signed char v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7i { unsigned short v1:7; unsigned long long v2:7; signed int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7i_BFs7c { unsigned short v1:7; unsigned long long v2:7; signed int v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7i_BFs7i { unsigned short v1:7; unsigned long long v2:7; signed int v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7i_BFs7ll { unsigned short v1:7; unsigned long long v2:7; signed int v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7i_BFs7s { unsigned short v1:7; unsigned long long v2:7; signed int v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7i_BFu7c { unsigned short v1:7; unsigned long long v2:7; signed int v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7i_BFu7i { unsigned short v1:7; unsigned long long v2:7; signed int v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7i_BFu7ll { unsigned short v1:7; unsigned long long v2:7; signed int v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7i_BFu7s { unsigned short v1:7; unsigned long long v2:7; signed int v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7ll { unsigned short v1:7; unsigned long long v2:7; signed long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7ll_BFs7c { unsigned short v1:7; unsigned long long v2:7; signed long long v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7ll_BFs7i { unsigned short v1:7; unsigned long long v2:7; signed long long v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7ll_BFs7ll { unsigned short v1:7; unsigned long long v2:7; signed long long v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7ll_BFs7s { unsigned short v1:7; unsigned long long v2:7; signed long long v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7ll_BFu7c { unsigned short v1:7; unsigned long long v2:7; signed long long v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7ll_BFu7i { unsigned short v1:7; unsigned long long v2:7; signed long long v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7ll_BFu7ll { unsigned short v1:7; unsigned long long v2:7; signed long long v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7ll_BFu7s { unsigned short v1:7; unsigned long long v2:7; signed long long v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7s { unsigned short v1:7; unsigned long long v2:7; signed short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7s_BFs7c { unsigned short v1:7; unsigned long long v2:7; signed short v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7s_BFs7i { unsigned short v1:7; unsigned long long v2:7; signed short v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7s_BFs7ll { unsigned short v1:7; unsigned long long v2:7; signed short v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7s_BFs7s { unsigned short v1:7; unsigned long long v2:7; signed short v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7s_BFu7c { unsigned short v1:7; unsigned long long v2:7; signed short v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7s_BFu7i { unsigned short v1:7; unsigned long long v2:7; signed short v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7s_BFu7ll { unsigned short v1:7; unsigned long long v2:7; signed short v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFs7s_BFu7s { unsigned short v1:7; unsigned long long v2:7; signed short v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu15i { unsigned short v1:7; unsigned long long v2:7; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu15ll { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu15s { unsigned short v1:7; unsigned long long v2:7; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu16i { unsigned short v1:7; unsigned long long v2:7; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu16ll { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu16s { unsigned short v1:7; unsigned long long v2:7; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu17i { unsigned short v1:7; unsigned long long v2:7; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu17ll { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu1c { unsigned short v1:7; unsigned long long v2:7; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu1i { unsigned short v1:7; unsigned long long v2:7; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu1ll { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu1s { unsigned short v1:7; unsigned long long v2:7; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu31i { unsigned short v1:7; unsigned long long v2:7; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu31ll { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu32i { unsigned short v1:7; unsigned long long v2:7; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu32ll { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu33 { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7c { unsigned short v1:7; unsigned long long v2:7; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7c_BFs7c { unsigned short v1:7; unsigned long long v2:7; unsigned char v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7c_BFs7i { unsigned short v1:7; unsigned long long v2:7; unsigned char v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7c_BFs7ll { unsigned short v1:7; unsigned long long v2:7; unsigned char v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7c_BFs7s { unsigned short v1:7; unsigned long long v2:7; unsigned char v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7c_BFu7c { unsigned short v1:7; unsigned long long v2:7; unsigned char v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7c_BFu7i { unsigned short v1:7; unsigned long long v2:7; unsigned char v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7c_BFu7ll { unsigned short v1:7; unsigned long long v2:7; unsigned char v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7c_BFu7s { unsigned short v1:7; unsigned long long v2:7; unsigned char v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7i { unsigned short v1:7; unsigned long long v2:7; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7i_BFs7c { unsigned short v1:7; unsigned long long v2:7; unsigned int v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7i_BFs7i { unsigned short v1:7; unsigned long long v2:7; unsigned int v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7i_BFs7ll { unsigned short v1:7; unsigned long long v2:7; unsigned int v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7i_BFs7s { unsigned short v1:7; unsigned long long v2:7; unsigned int v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7i_BFu7c { unsigned short v1:7; unsigned long long v2:7; unsigned int v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7i_BFu7i { unsigned short v1:7; unsigned long long v2:7; unsigned int v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7i_BFu7ll { unsigned short v1:7; unsigned long long v2:7; unsigned int v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7i_BFu7s { unsigned short v1:7; unsigned long long v2:7; unsigned int v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7ll { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7ll_BFs7c { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7ll_BFs7i { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7ll_BFs7ll { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7ll_BFs7s { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7ll_BFu7c { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7ll_BFu7i { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7ll_BFu7ll { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7ll_BFu7s { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7s { unsigned short v1:7; unsigned long long v2:7; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7s_BFs7c { unsigned short v1:7; unsigned long long v2:7; unsigned short v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7s_BFs7i { unsigned short v1:7; unsigned long long v2:7; unsigned short v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7s_BFs7ll { unsigned short v1:7; unsigned long long v2:7; unsigned short v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7s_BFs7s { unsigned short v1:7; unsigned long long v2:7; unsigned short v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7s_BFu7c { unsigned short v1:7; unsigned long long v2:7; unsigned short v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7s_BFu7i { unsigned short v1:7; unsigned long long v2:7; unsigned short v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7s_BFu7ll { unsigned short v1:7; unsigned long long v2:7; unsigned short v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu7s_BFu7s { unsigned short v1:7; unsigned long long v2:7; unsigned short v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu8c { unsigned short v1:7; unsigned long long v2:7; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu8i { unsigned short v1:7; unsigned long long v2:7; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu8ll { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu8s { unsigned short v1:7; unsigned long long v2:7; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu9i { unsigned short v1:7; unsigned long long v2:7; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu9ll { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu7ll_BFu9s { unsigned short v1:7; unsigned long long v2:7; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu7ll_C { unsigned short v1:7; unsigned long long v2:7; char v3; };
struct __attribute__((packed)) aBFu7s_BFu7ll_D { unsigned short v1:7; unsigned long long v2:7; double v3; };
struct __attribute__((packed)) aBFu7s_BFu7ll_F { unsigned short v1:7; unsigned long long v2:7; float v3; };
struct __attribute__((packed)) aBFu7s_BFu7ll_I { unsigned short v1:7; unsigned long long v2:7; int v3; };
struct __attribute__((packed)) aBFu7s_BFu7ll_Ip { unsigned short v1:7; unsigned long long v2:7; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu7ll_L { unsigned short v1:7; unsigned long long v2:7; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu7ll_S { unsigned short v1:7; unsigned long long v2:7; short v3; };
struct __attribute__((packed)) aBFu7s_BFu7ll_Uc { unsigned short v1:7; unsigned long long v2:7; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu7ll_Ui { unsigned short v1:7; unsigned long long v2:7; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu7ll_Ul { unsigned short v1:7; unsigned long long v2:7; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu7ll_Us { unsigned short v1:7; unsigned long long v2:7; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu7ll_Vp { unsigned short v1:7; unsigned long long v2:7; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu7s { unsigned short v1:7; unsigned short v2:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7c { unsigned short v1:7; unsigned short v2:7; signed char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7c_BFs7c { unsigned short v1:7; unsigned short v2:7; signed char v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7c_BFs7i { unsigned short v1:7; unsigned short v2:7; signed char v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7c_BFs7ll { unsigned short v1:7; unsigned short v2:7; signed char v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7c_BFs7s { unsigned short v1:7; unsigned short v2:7; signed char v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7c_BFu7c { unsigned short v1:7; unsigned short v2:7; signed char v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7c_BFu7i { unsigned short v1:7; unsigned short v2:7; signed char v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7c_BFu7ll { unsigned short v1:7; unsigned short v2:7; signed char v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7c_BFu7s { unsigned short v1:7; unsigned short v2:7; signed char v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7i { unsigned short v1:7; unsigned short v2:7; signed int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7i_BFs7c { unsigned short v1:7; unsigned short v2:7; signed int v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7i_BFs7i { unsigned short v1:7; unsigned short v2:7; signed int v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7i_BFs7ll { unsigned short v1:7; unsigned short v2:7; signed int v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7i_BFs7s { unsigned short v1:7; unsigned short v2:7; signed int v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7i_BFu7c { unsigned short v1:7; unsigned short v2:7; signed int v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7i_BFu7i { unsigned short v1:7; unsigned short v2:7; signed int v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7i_BFu7ll { unsigned short v1:7; unsigned short v2:7; signed int v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7i_BFu7s { unsigned short v1:7; unsigned short v2:7; signed int v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7ll { unsigned short v1:7; unsigned short v2:7; signed long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7ll_BFs7c { unsigned short v1:7; unsigned short v2:7; signed long long v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7ll_BFs7i { unsigned short v1:7; unsigned short v2:7; signed long long v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7ll_BFs7ll { unsigned short v1:7; unsigned short v2:7; signed long long v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7ll_BFs7s { unsigned short v1:7; unsigned short v2:7; signed long long v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7ll_BFu7c { unsigned short v1:7; unsigned short v2:7; signed long long v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7ll_BFu7i { unsigned short v1:7; unsigned short v2:7; signed long long v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7ll_BFu7ll { unsigned short v1:7; unsigned short v2:7; signed long long v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7ll_BFu7s { unsigned short v1:7; unsigned short v2:7; signed long long v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7s { unsigned short v1:7; unsigned short v2:7; signed short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7s_BFs7c { unsigned short v1:7; unsigned short v2:7; signed short v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7s_BFs7i { unsigned short v1:7; unsigned short v2:7; signed short v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7s_BFs7ll { unsigned short v1:7; unsigned short v2:7; signed short v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7s_BFs7s { unsigned short v1:7; unsigned short v2:7; signed short v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7s_BFu7c { unsigned short v1:7; unsigned short v2:7; signed short v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7s_BFu7i { unsigned short v1:7; unsigned short v2:7; signed short v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7s_BFu7ll { unsigned short v1:7; unsigned short v2:7; signed short v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFs7s_BFu7s { unsigned short v1:7; unsigned short v2:7; signed short v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu15i { unsigned short v1:7; unsigned short v2:7; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu15ll { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu15s { unsigned short v1:7; unsigned short v2:7; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu16i { unsigned short v1:7; unsigned short v2:7; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu16ll { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu16s { unsigned short v1:7; unsigned short v2:7; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu17i { unsigned short v1:7; unsigned short v2:7; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu17ll { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu1c { unsigned short v1:7; unsigned short v2:7; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu1i { unsigned short v1:7; unsigned short v2:7; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu1ll { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu1s { unsigned short v1:7; unsigned short v2:7; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu31i { unsigned short v1:7; unsigned short v2:7; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu31ll { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu32i { unsigned short v1:7; unsigned short v2:7; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu32ll { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu33 { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7c { unsigned short v1:7; unsigned short v2:7; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7c_BFs7c { unsigned short v1:7; unsigned short v2:7; unsigned char v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7c_BFs7i { unsigned short v1:7; unsigned short v2:7; unsigned char v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7c_BFs7ll { unsigned short v1:7; unsigned short v2:7; unsigned char v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7c_BFs7s { unsigned short v1:7; unsigned short v2:7; unsigned char v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7c_BFu7c { unsigned short v1:7; unsigned short v2:7; unsigned char v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7c_BFu7i { unsigned short v1:7; unsigned short v2:7; unsigned char v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7c_BFu7ll { unsigned short v1:7; unsigned short v2:7; unsigned char v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7c_BFu7s { unsigned short v1:7; unsigned short v2:7; unsigned char v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7i { unsigned short v1:7; unsigned short v2:7; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7i_BFs7c { unsigned short v1:7; unsigned short v2:7; unsigned int v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7i_BFs7i { unsigned short v1:7; unsigned short v2:7; unsigned int v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7i_BFs7ll { unsigned short v1:7; unsigned short v2:7; unsigned int v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7i_BFs7s { unsigned short v1:7; unsigned short v2:7; unsigned int v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7i_BFu7c { unsigned short v1:7; unsigned short v2:7; unsigned int v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7i_BFu7i { unsigned short v1:7; unsigned short v2:7; unsigned int v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7i_BFu7ll { unsigned short v1:7; unsigned short v2:7; unsigned int v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7i_BFu7s { unsigned short v1:7; unsigned short v2:7; unsigned int v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7ll { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7ll_BFs7c { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7ll_BFs7i { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7ll_BFs7ll { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7ll_BFs7s { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7ll_BFu7c { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7ll_BFu7i { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7ll_BFu7ll { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7ll_BFu7s { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7s { unsigned short v1:7; unsigned short v2:7; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7s_BFs7c { unsigned short v1:7; unsigned short v2:7; unsigned short v3:7; signed char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7s_BFs7i { unsigned short v1:7; unsigned short v2:7; unsigned short v3:7; signed int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7s_BFs7ll { unsigned short v1:7; unsigned short v2:7; unsigned short v3:7; signed long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7s_BFs7s { unsigned short v1:7; unsigned short v2:7; unsigned short v3:7; signed short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7s_BFu7c { unsigned short v1:7; unsigned short v2:7; unsigned short v3:7; unsigned char v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7s_BFu7i { unsigned short v1:7; unsigned short v2:7; unsigned short v3:7; unsigned int v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7s_BFu7ll { unsigned short v1:7; unsigned short v2:7; unsigned short v3:7; unsigned long long v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu7s_BFu7s { unsigned short v1:7; unsigned short v2:7; unsigned short v3:7; unsigned short v4:7; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu8c { unsigned short v1:7; unsigned short v2:7; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu8i { unsigned short v1:7; unsigned short v2:7; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu8ll { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu8s { unsigned short v1:7; unsigned short v2:7; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu9i { unsigned short v1:7; unsigned short v2:7; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu9ll { unsigned short v1:7; unsigned short v2:7; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu7s_BFu9s { unsigned short v1:7; unsigned short v2:7; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu7s_C { unsigned short v1:7; unsigned short v2:7; char v3; };
struct __attribute__((packed)) aBFu7s_BFu7s_D { unsigned short v1:7; unsigned short v2:7; double v3; };
struct __attribute__((packed)) aBFu7s_BFu7s_F { unsigned short v1:7; unsigned short v2:7; float v3; };
struct __attribute__((packed)) aBFu7s_BFu7s_I { unsigned short v1:7; unsigned short v2:7; int v3; };
struct __attribute__((packed)) aBFu7s_BFu7s_Ip { unsigned short v1:7; unsigned short v2:7; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu7s_L { unsigned short v1:7; unsigned short v2:7; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu7s_S { unsigned short v1:7; unsigned short v2:7; short v3; };
struct __attribute__((packed)) aBFu7s_BFu7s_Uc { unsigned short v1:7; unsigned short v2:7; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu7s_Ui { unsigned short v1:7; unsigned short v2:7; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu7s_Ul { unsigned short v1:7; unsigned short v2:7; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu7s_Us { unsigned short v1:7; unsigned short v2:7; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu7s_Vp { unsigned short v1:7; unsigned short v2:7; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu8c { unsigned short v1:7; unsigned char v2:8; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu15i { unsigned short v1:7; unsigned char v2:8; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu15ll { unsigned short v1:7; unsigned char v2:8; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu15s { unsigned short v1:7; unsigned char v2:8; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu16i { unsigned short v1:7; unsigned char v2:8; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu16ll { unsigned short v1:7; unsigned char v2:8; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu16s { unsigned short v1:7; unsigned char v2:8; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu17i { unsigned short v1:7; unsigned char v2:8; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu17ll { unsigned short v1:7; unsigned char v2:8; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu1c { unsigned short v1:7; unsigned char v2:8; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu1i { unsigned short v1:7; unsigned char v2:8; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu1ll { unsigned short v1:7; unsigned char v2:8; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu1s { unsigned short v1:7; unsigned char v2:8; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu31i { unsigned short v1:7; unsigned char v2:8; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu31ll { unsigned short v1:7; unsigned char v2:8; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu32i { unsigned short v1:7; unsigned char v2:8; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu32ll { unsigned short v1:7; unsigned char v2:8; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu33 { unsigned short v1:7; unsigned char v2:8; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu7c { unsigned short v1:7; unsigned char v2:8; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu7i { unsigned short v1:7; unsigned char v2:8; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu7ll { unsigned short v1:7; unsigned char v2:8; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu7s { unsigned short v1:7; unsigned char v2:8; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu8c { unsigned short v1:7; unsigned char v2:8; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu8i { unsigned short v1:7; unsigned char v2:8; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu8ll { unsigned short v1:7; unsigned char v2:8; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu8s { unsigned short v1:7; unsigned char v2:8; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu9i { unsigned short v1:7; unsigned char v2:8; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu9ll { unsigned short v1:7; unsigned char v2:8; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu8c_BFu9s { unsigned short v1:7; unsigned char v2:8; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu8c_C { unsigned short v1:7; unsigned char v2:8; char v3; };
struct __attribute__((packed)) aBFu7s_BFu8c_D { unsigned short v1:7; unsigned char v2:8; double v3; };
struct __attribute__((packed)) aBFu7s_BFu8c_F { unsigned short v1:7; unsigned char v2:8; float v3; };
struct __attribute__((packed)) aBFu7s_BFu8c_I { unsigned short v1:7; unsigned char v2:8; int v3; };
struct __attribute__((packed)) aBFu7s_BFu8c_Ip { unsigned short v1:7; unsigned char v2:8; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu8c_L { unsigned short v1:7; unsigned char v2:8; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu8c_S { unsigned short v1:7; unsigned char v2:8; short v3; };
struct __attribute__((packed)) aBFu7s_BFu8c_Uc { unsigned short v1:7; unsigned char v2:8; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu8c_Ui { unsigned short v1:7; unsigned char v2:8; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu8c_Ul { unsigned short v1:7; unsigned char v2:8; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu8c_Us { unsigned short v1:7; unsigned char v2:8; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu8c_Vp { unsigned short v1:7; unsigned char v2:8; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu8i { unsigned short v1:7; unsigned int v2:8; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu15i { unsigned short v1:7; unsigned int v2:8; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu15ll { unsigned short v1:7; unsigned int v2:8; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu15s { unsigned short v1:7; unsigned int v2:8; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu16i { unsigned short v1:7; unsigned int v2:8; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu16ll { unsigned short v1:7; unsigned int v2:8; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu16s { unsigned short v1:7; unsigned int v2:8; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu17i { unsigned short v1:7; unsigned int v2:8; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu17ll { unsigned short v1:7; unsigned int v2:8; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu1c { unsigned short v1:7; unsigned int v2:8; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu1i { unsigned short v1:7; unsigned int v2:8; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu1ll { unsigned short v1:7; unsigned int v2:8; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu1s { unsigned short v1:7; unsigned int v2:8; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu31i { unsigned short v1:7; unsigned int v2:8; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu31ll { unsigned short v1:7; unsigned int v2:8; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu32i { unsigned short v1:7; unsigned int v2:8; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu32ll { unsigned short v1:7; unsigned int v2:8; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu33 { unsigned short v1:7; unsigned int v2:8; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu7c { unsigned short v1:7; unsigned int v2:8; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu7i { unsigned short v1:7; unsigned int v2:8; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu7ll { unsigned short v1:7; unsigned int v2:8; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu7s { unsigned short v1:7; unsigned int v2:8; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu8c { unsigned short v1:7; unsigned int v2:8; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu8i { unsigned short v1:7; unsigned int v2:8; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu8ll { unsigned short v1:7; unsigned int v2:8; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu8s { unsigned short v1:7; unsigned int v2:8; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu9i { unsigned short v1:7; unsigned int v2:8; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu9ll { unsigned short v1:7; unsigned int v2:8; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu8i_BFu9s { unsigned short v1:7; unsigned int v2:8; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu8i_C { unsigned short v1:7; unsigned int v2:8; char v3; };
struct __attribute__((packed)) aBFu7s_BFu8i_D { unsigned short v1:7; unsigned int v2:8; double v3; };
struct __attribute__((packed)) aBFu7s_BFu8i_F { unsigned short v1:7; unsigned int v2:8; float v3; };
struct __attribute__((packed)) aBFu7s_BFu8i_I { unsigned short v1:7; unsigned int v2:8; int v3; };
struct __attribute__((packed)) aBFu7s_BFu8i_Ip { unsigned short v1:7; unsigned int v2:8; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu8i_L { unsigned short v1:7; unsigned int v2:8; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu8i_S { unsigned short v1:7; unsigned int v2:8; short v3; };
struct __attribute__((packed)) aBFu7s_BFu8i_Uc { unsigned short v1:7; unsigned int v2:8; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu8i_Ui { unsigned short v1:7; unsigned int v2:8; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu8i_Ul { unsigned short v1:7; unsigned int v2:8; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu8i_Us { unsigned short v1:7; unsigned int v2:8; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu8i_Vp { unsigned short v1:7; unsigned int v2:8; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu8ll { unsigned short v1:7; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu15i { unsigned short v1:7; unsigned long long v2:8; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu15ll { unsigned short v1:7; unsigned long long v2:8; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu15s { unsigned short v1:7; unsigned long long v2:8; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu16i { unsigned short v1:7; unsigned long long v2:8; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu16ll { unsigned short v1:7; unsigned long long v2:8; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu16s { unsigned short v1:7; unsigned long long v2:8; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu17i { unsigned short v1:7; unsigned long long v2:8; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu17ll { unsigned short v1:7; unsigned long long v2:8; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu1c { unsigned short v1:7; unsigned long long v2:8; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu1i { unsigned short v1:7; unsigned long long v2:8; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu1ll { unsigned short v1:7; unsigned long long v2:8; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu1s { unsigned short v1:7; unsigned long long v2:8; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu31i { unsigned short v1:7; unsigned long long v2:8; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu31ll { unsigned short v1:7; unsigned long long v2:8; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu32i { unsigned short v1:7; unsigned long long v2:8; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu32ll { unsigned short v1:7; unsigned long long v2:8; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu33 { unsigned short v1:7; unsigned long long v2:8; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu7c { unsigned short v1:7; unsigned long long v2:8; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu7i { unsigned short v1:7; unsigned long long v2:8; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu7ll { unsigned short v1:7; unsigned long long v2:8; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu7s { unsigned short v1:7; unsigned long long v2:8; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu8c { unsigned short v1:7; unsigned long long v2:8; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu8i { unsigned short v1:7; unsigned long long v2:8; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu8ll { unsigned short v1:7; unsigned long long v2:8; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu8s { unsigned short v1:7; unsigned long long v2:8; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu9i { unsigned short v1:7; unsigned long long v2:8; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu9ll { unsigned short v1:7; unsigned long long v2:8; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu8ll_BFu9s { unsigned short v1:7; unsigned long long v2:8; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu8ll_C { unsigned short v1:7; unsigned long long v2:8; char v3; };
struct __attribute__((packed)) aBFu7s_BFu8ll_D { unsigned short v1:7; unsigned long long v2:8; double v3; };
struct __attribute__((packed)) aBFu7s_BFu8ll_F { unsigned short v1:7; unsigned long long v2:8; float v3; };
struct __attribute__((packed)) aBFu7s_BFu8ll_I { unsigned short v1:7; unsigned long long v2:8; int v3; };
struct __attribute__((packed)) aBFu7s_BFu8ll_Ip { unsigned short v1:7; unsigned long long v2:8; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu8ll_L { unsigned short v1:7; unsigned long long v2:8; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu8ll_S { unsigned short v1:7; unsigned long long v2:8; short v3; };
struct __attribute__((packed)) aBFu7s_BFu8ll_Uc { unsigned short v1:7; unsigned long long v2:8; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu8ll_Ui { unsigned short v1:7; unsigned long long v2:8; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu8ll_Ul { unsigned short v1:7; unsigned long long v2:8; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu8ll_Us { unsigned short v1:7; unsigned long long v2:8; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu8ll_Vp { unsigned short v1:7; unsigned long long v2:8; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu8s { unsigned short v1:7; unsigned short v2:8; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu15i { unsigned short v1:7; unsigned short v2:8; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu15ll { unsigned short v1:7; unsigned short v2:8; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu15s { unsigned short v1:7; unsigned short v2:8; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu16i { unsigned short v1:7; unsigned short v2:8; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu16ll { unsigned short v1:7; unsigned short v2:8; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu16s { unsigned short v1:7; unsigned short v2:8; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu17i { unsigned short v1:7; unsigned short v2:8; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu17ll { unsigned short v1:7; unsigned short v2:8; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu1c { unsigned short v1:7; unsigned short v2:8; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu1i { unsigned short v1:7; unsigned short v2:8; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu1ll { unsigned short v1:7; unsigned short v2:8; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu1s { unsigned short v1:7; unsigned short v2:8; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu31i { unsigned short v1:7; unsigned short v2:8; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu31ll { unsigned short v1:7; unsigned short v2:8; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu32i { unsigned short v1:7; unsigned short v2:8; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu32ll { unsigned short v1:7; unsigned short v2:8; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu33 { unsigned short v1:7; unsigned short v2:8; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu7c { unsigned short v1:7; unsigned short v2:8; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu7i { unsigned short v1:7; unsigned short v2:8; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu7ll { unsigned short v1:7; unsigned short v2:8; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu7s { unsigned short v1:7; unsigned short v2:8; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu8c { unsigned short v1:7; unsigned short v2:8; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu8i { unsigned short v1:7; unsigned short v2:8; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu8ll { unsigned short v1:7; unsigned short v2:8; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu8s { unsigned short v1:7; unsigned short v2:8; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu9i { unsigned short v1:7; unsigned short v2:8; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu9ll { unsigned short v1:7; unsigned short v2:8; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu8s_BFu9s { unsigned short v1:7; unsigned short v2:8; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu8s_C { unsigned short v1:7; unsigned short v2:8; char v3; };
struct __attribute__((packed)) aBFu7s_BFu8s_D { unsigned short v1:7; unsigned short v2:8; double v3; };
struct __attribute__((packed)) aBFu7s_BFu8s_F { unsigned short v1:7; unsigned short v2:8; float v3; };
struct __attribute__((packed)) aBFu7s_BFu8s_I { unsigned short v1:7; unsigned short v2:8; int v3; };
struct __attribute__((packed)) aBFu7s_BFu8s_Ip { unsigned short v1:7; unsigned short v2:8; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu8s_L { unsigned short v1:7; unsigned short v2:8; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu8s_S { unsigned short v1:7; unsigned short v2:8; short v3; };
struct __attribute__((packed)) aBFu7s_BFu8s_Uc { unsigned short v1:7; unsigned short v2:8; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu8s_Ui { unsigned short v1:7; unsigned short v2:8; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu8s_Ul { unsigned short v1:7; unsigned short v2:8; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu8s_Us { unsigned short v1:7; unsigned short v2:8; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu8s_Vp { unsigned short v1:7; unsigned short v2:8; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu9i { unsigned short v1:7; unsigned int v2:9; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu15i { unsigned short v1:7; unsigned int v2:9; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu15ll { unsigned short v1:7; unsigned int v2:9; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu15s { unsigned short v1:7; unsigned int v2:9; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu16i { unsigned short v1:7; unsigned int v2:9; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu16ll { unsigned short v1:7; unsigned int v2:9; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu16s { unsigned short v1:7; unsigned int v2:9; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu17i { unsigned short v1:7; unsigned int v2:9; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu17ll { unsigned short v1:7; unsigned int v2:9; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu1c { unsigned short v1:7; unsigned int v2:9; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu1i { unsigned short v1:7; unsigned int v2:9; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu1ll { unsigned short v1:7; unsigned int v2:9; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu1s { unsigned short v1:7; unsigned int v2:9; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu31i { unsigned short v1:7; unsigned int v2:9; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu31ll { unsigned short v1:7; unsigned int v2:9; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu32i { unsigned short v1:7; unsigned int v2:9; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu32ll { unsigned short v1:7; unsigned int v2:9; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu33 { unsigned short v1:7; unsigned int v2:9; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu7c { unsigned short v1:7; unsigned int v2:9; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu7i { unsigned short v1:7; unsigned int v2:9; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu7ll { unsigned short v1:7; unsigned int v2:9; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu7s { unsigned short v1:7; unsigned int v2:9; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu8c { unsigned short v1:7; unsigned int v2:9; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu8i { unsigned short v1:7; unsigned int v2:9; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu8ll { unsigned short v1:7; unsigned int v2:9; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu8s { unsigned short v1:7; unsigned int v2:9; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu9i { unsigned short v1:7; unsigned int v2:9; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu9ll { unsigned short v1:7; unsigned int v2:9; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu9i_BFu9s { unsigned short v1:7; unsigned int v2:9; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu9i_C { unsigned short v1:7; unsigned int v2:9; char v3; };
struct __attribute__((packed)) aBFu7s_BFu9i_D { unsigned short v1:7; unsigned int v2:9; double v3; };
struct __attribute__((packed)) aBFu7s_BFu9i_F { unsigned short v1:7; unsigned int v2:9; float v3; };
struct __attribute__((packed)) aBFu7s_BFu9i_I { unsigned short v1:7; unsigned int v2:9; int v3; };
struct __attribute__((packed)) aBFu7s_BFu9i_Ip { unsigned short v1:7; unsigned int v2:9; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu9i_L { unsigned short v1:7; unsigned int v2:9; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu9i_S { unsigned short v1:7; unsigned int v2:9; short v3; };
struct __attribute__((packed)) aBFu7s_BFu9i_Uc { unsigned short v1:7; unsigned int v2:9; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu9i_Ui { unsigned short v1:7; unsigned int v2:9; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu9i_Ul { unsigned short v1:7; unsigned int v2:9; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu9i_Us { unsigned short v1:7; unsigned int v2:9; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu9i_Vp { unsigned short v1:7; unsigned int v2:9; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu9ll { unsigned short v1:7; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu15i { unsigned short v1:7; unsigned long long v2:9; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu15ll { unsigned short v1:7; unsigned long long v2:9; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu15s { unsigned short v1:7; unsigned long long v2:9; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu16i { unsigned short v1:7; unsigned long long v2:9; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu16ll { unsigned short v1:7; unsigned long long v2:9; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu16s { unsigned short v1:7; unsigned long long v2:9; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu17i { unsigned short v1:7; unsigned long long v2:9; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu17ll { unsigned short v1:7; unsigned long long v2:9; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu1c { unsigned short v1:7; unsigned long long v2:9; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu1i { unsigned short v1:7; unsigned long long v2:9; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu1ll { unsigned short v1:7; unsigned long long v2:9; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu1s { unsigned short v1:7; unsigned long long v2:9; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu31i { unsigned short v1:7; unsigned long long v2:9; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu31ll { unsigned short v1:7; unsigned long long v2:9; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu32i { unsigned short v1:7; unsigned long long v2:9; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu32ll { unsigned short v1:7; unsigned long long v2:9; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu33 { unsigned short v1:7; unsigned long long v2:9; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu7c { unsigned short v1:7; unsigned long long v2:9; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu7i { unsigned short v1:7; unsigned long long v2:9; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu7ll { unsigned short v1:7; unsigned long long v2:9; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu7s { unsigned short v1:7; unsigned long long v2:9; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu8c { unsigned short v1:7; unsigned long long v2:9; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu8i { unsigned short v1:7; unsigned long long v2:9; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu8ll { unsigned short v1:7; unsigned long long v2:9; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu8s { unsigned short v1:7; unsigned long long v2:9; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu9i { unsigned short v1:7; unsigned long long v2:9; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu9ll { unsigned short v1:7; unsigned long long v2:9; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu9ll_BFu9s { unsigned short v1:7; unsigned long long v2:9; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu9ll_C { unsigned short v1:7; unsigned long long v2:9; char v3; };
struct __attribute__((packed)) aBFu7s_BFu9ll_D { unsigned short v1:7; unsigned long long v2:9; double v3; };
struct __attribute__((packed)) aBFu7s_BFu9ll_F { unsigned short v1:7; unsigned long long v2:9; float v3; };
struct __attribute__((packed)) aBFu7s_BFu9ll_I { unsigned short v1:7; unsigned long long v2:9; int v3; };
struct __attribute__((packed)) aBFu7s_BFu9ll_Ip { unsigned short v1:7; unsigned long long v2:9; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu9ll_L { unsigned short v1:7; unsigned long long v2:9; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu9ll_S { unsigned short v1:7; unsigned long long v2:9; short v3; };
struct __attribute__((packed)) aBFu7s_BFu9ll_Uc { unsigned short v1:7; unsigned long long v2:9; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu9ll_Ui { unsigned short v1:7; unsigned long long v2:9; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu9ll_Ul { unsigned short v1:7; unsigned long long v2:9; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu9ll_Us { unsigned short v1:7; unsigned long long v2:9; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu9ll_Vp { unsigned short v1:7; unsigned long long v2:9; void * v3; };
struct __attribute__((packed)) aBFu7s_BFu9s { unsigned short v1:7; unsigned short v2:9; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu15i { unsigned short v1:7; unsigned short v2:9; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu15ll { unsigned short v1:7; unsigned short v2:9; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu15s { unsigned short v1:7; unsigned short v2:9; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu16i { unsigned short v1:7; unsigned short v2:9; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu16ll { unsigned short v1:7; unsigned short v2:9; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu16s { unsigned short v1:7; unsigned short v2:9; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu17i { unsigned short v1:7; unsigned short v2:9; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu17ll { unsigned short v1:7; unsigned short v2:9; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu1c { unsigned short v1:7; unsigned short v2:9; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu1i { unsigned short v1:7; unsigned short v2:9; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu1ll { unsigned short v1:7; unsigned short v2:9; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu1s { unsigned short v1:7; unsigned short v2:9; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu31i { unsigned short v1:7; unsigned short v2:9; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu31ll { unsigned short v1:7; unsigned short v2:9; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu32i { unsigned short v1:7; unsigned short v2:9; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu32ll { unsigned short v1:7; unsigned short v2:9; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu33 { unsigned short v1:7; unsigned short v2:9; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu7c { unsigned short v1:7; unsigned short v2:9; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu7i { unsigned short v1:7; unsigned short v2:9; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu7ll { unsigned short v1:7; unsigned short v2:9; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu7s { unsigned short v1:7; unsigned short v2:9; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu8c { unsigned short v1:7; unsigned short v2:9; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu8i { unsigned short v1:7; unsigned short v2:9; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu8ll { unsigned short v1:7; unsigned short v2:9; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu8s { unsigned short v1:7; unsigned short v2:9; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu9i { unsigned short v1:7; unsigned short v2:9; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu9ll { unsigned short v1:7; unsigned short v2:9; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_BFu9s_BFu9s { unsigned short v1:7; unsigned short v2:9; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_BFu9s_C { unsigned short v1:7; unsigned short v2:9; char v3; };
struct __attribute__((packed)) aBFu7s_BFu9s_D { unsigned short v1:7; unsigned short v2:9; double v3; };
struct __attribute__((packed)) aBFu7s_BFu9s_F { unsigned short v1:7; unsigned short v2:9; float v3; };
struct __attribute__((packed)) aBFu7s_BFu9s_I { unsigned short v1:7; unsigned short v2:9; int v3; };
struct __attribute__((packed)) aBFu7s_BFu9s_Ip { unsigned short v1:7; unsigned short v2:9; int * v3; };
struct __attribute__((packed)) aBFu7s_BFu9s_L { unsigned short v1:7; unsigned short v2:9; long long v3; };
struct __attribute__((packed)) aBFu7s_BFu9s_S { unsigned short v1:7; unsigned short v2:9; short v3; };
struct __attribute__((packed)) aBFu7s_BFu9s_Uc { unsigned short v1:7; unsigned short v2:9; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_BFu9s_Ui { unsigned short v1:7; unsigned short v2:9; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_BFu9s_Ul { unsigned short v1:7; unsigned short v2:9; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_BFu9s_Us { unsigned short v1:7; unsigned short v2:9; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_BFu9s_Vp { unsigned short v1:7; unsigned short v2:9; void * v3; };
struct __attribute__((packed)) aBFu7s_C { unsigned short v1:7; char v2; };
struct __attribute__((packed)) aBFu7s_C_BFu15i { unsigned short v1:7; char v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_C_BFu15ll { unsigned short v1:7; char v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_C_BFu15s { unsigned short v1:7; char v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_C_BFu16i { unsigned short v1:7; char v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_C_BFu16ll { unsigned short v1:7; char v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_C_BFu16s { unsigned short v1:7; char v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_C_BFu17i { unsigned short v1:7; char v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_C_BFu17ll { unsigned short v1:7; char v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_C_BFu1c { unsigned short v1:7; char v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_C_BFu1i { unsigned short v1:7; char v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_C_BFu1ll { unsigned short v1:7; char v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_C_BFu1s { unsigned short v1:7; char v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_C_BFu31i { unsigned short v1:7; char v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_C_BFu31ll { unsigned short v1:7; char v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_C_BFu32i { unsigned short v1:7; char v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_C_BFu32ll { unsigned short v1:7; char v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_C_BFu33 { unsigned short v1:7; char v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_C_BFu7c { unsigned short v1:7; char v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_C_BFu7i { unsigned short v1:7; char v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_C_BFu7ll { unsigned short v1:7; char v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_C_BFu7s { unsigned short v1:7; char v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_C_BFu8c { unsigned short v1:7; char v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_C_BFu8i { unsigned short v1:7; char v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_C_BFu8ll { unsigned short v1:7; char v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_C_BFu8s { unsigned short v1:7; char v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_C_BFu9i { unsigned short v1:7; char v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_C_BFu9ll { unsigned short v1:7; char v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_C_BFu9s { unsigned short v1:7; char v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_C_C { unsigned short v1:7; char v2; char v3; };
struct __attribute__((packed)) aBFu7s_C_D { unsigned short v1:7; char v2; double v3; };
struct __attribute__((packed)) aBFu7s_C_F { unsigned short v1:7; char v2; float v3; };
struct __attribute__((packed)) aBFu7s_C_I { unsigned short v1:7; char v2; int v3; };
struct __attribute__((packed)) aBFu7s_C_Ip { unsigned short v1:7; char v2; int * v3; };
struct __attribute__((packed)) aBFu7s_C_L { unsigned short v1:7; char v2; long long v3; };
struct __attribute__((packed)) aBFu7s_C_S { unsigned short v1:7; char v2; short v3; };
struct __attribute__((packed)) aBFu7s_C_Uc { unsigned short v1:7; char v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_C_Ui { unsigned short v1:7; char v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_C_Ul { unsigned short v1:7; char v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_C_Us { unsigned short v1:7; char v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_C_Vp { unsigned short v1:7; char v2; void * v3; };
struct __attribute__((packed)) aBFu7s_D { unsigned short v1:7; double v2; };
struct __attribute__((packed)) aBFu7s_D_BFu15i { unsigned short v1:7; double v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_D_BFu15ll { unsigned short v1:7; double v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_D_BFu15s { unsigned short v1:7; double v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_D_BFu16i { unsigned short v1:7; double v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_D_BFu16ll { unsigned short v1:7; double v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_D_BFu16s { unsigned short v1:7; double v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_D_BFu17i { unsigned short v1:7; double v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_D_BFu17ll { unsigned short v1:7; double v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_D_BFu1c { unsigned short v1:7; double v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_D_BFu1i { unsigned short v1:7; double v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_D_BFu1ll { unsigned short v1:7; double v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_D_BFu1s { unsigned short v1:7; double v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_D_BFu31i { unsigned short v1:7; double v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_D_BFu31ll { unsigned short v1:7; double v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_D_BFu32i { unsigned short v1:7; double v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_D_BFu32ll { unsigned short v1:7; double v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_D_BFu33 { unsigned short v1:7; double v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_D_BFu7c { unsigned short v1:7; double v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_D_BFu7i { unsigned short v1:7; double v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_D_BFu7ll { unsigned short v1:7; double v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_D_BFu7s { unsigned short v1:7; double v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_D_BFu8c { unsigned short v1:7; double v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_D_BFu8i { unsigned short v1:7; double v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_D_BFu8ll { unsigned short v1:7; double v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_D_BFu8s { unsigned short v1:7; double v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_D_BFu9i { unsigned short v1:7; double v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_D_BFu9ll { unsigned short v1:7; double v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_D_BFu9s { unsigned short v1:7; double v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_D_C { unsigned short v1:7; double v2; char v3; };
struct __attribute__((packed)) aBFu7s_D_D { unsigned short v1:7; double v2; double v3; };
struct __attribute__((packed)) aBFu7s_D_F { unsigned short v1:7; double v2; float v3; };
struct __attribute__((packed)) aBFu7s_D_I { unsigned short v1:7; double v2; int v3; };
struct __attribute__((packed)) aBFu7s_D_Ip { unsigned short v1:7; double v2; int * v3; };
struct __attribute__((packed)) aBFu7s_D_L { unsigned short v1:7; double v2; long long v3; };
struct __attribute__((packed)) aBFu7s_D_S { unsigned short v1:7; double v2; short v3; };
struct __attribute__((packed)) aBFu7s_D_Uc { unsigned short v1:7; double v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_D_Ui { unsigned short v1:7; double v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_D_Ul { unsigned short v1:7; double v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_D_Us { unsigned short v1:7; double v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_D_Vp { unsigned short v1:7; double v2; void * v3; };
struct __attribute__((packed)) aBFu7s_F { unsigned short v1:7; float v2; };
struct __attribute__((packed)) aBFu7s_F_BFu15i { unsigned short v1:7; float v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_F_BFu15ll { unsigned short v1:7; float v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_F_BFu15s { unsigned short v1:7; float v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_F_BFu16i { unsigned short v1:7; float v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_F_BFu16ll { unsigned short v1:7; float v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_F_BFu16s { unsigned short v1:7; float v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_F_BFu17i { unsigned short v1:7; float v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_F_BFu17ll { unsigned short v1:7; float v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_F_BFu1c { unsigned short v1:7; float v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_F_BFu1i { unsigned short v1:7; float v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_F_BFu1ll { unsigned short v1:7; float v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_F_BFu1s { unsigned short v1:7; float v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_F_BFu31i { unsigned short v1:7; float v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_F_BFu31ll { unsigned short v1:7; float v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_F_BFu32i { unsigned short v1:7; float v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_F_BFu32ll { unsigned short v1:7; float v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_F_BFu33 { unsigned short v1:7; float v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_F_BFu7c { unsigned short v1:7; float v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_F_BFu7i { unsigned short v1:7; float v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_F_BFu7ll { unsigned short v1:7; float v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_F_BFu7s { unsigned short v1:7; float v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_F_BFu8c { unsigned short v1:7; float v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_F_BFu8i { unsigned short v1:7; float v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_F_BFu8ll { unsigned short v1:7; float v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_F_BFu8s { unsigned short v1:7; float v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_F_BFu9i { unsigned short v1:7; float v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_F_BFu9ll { unsigned short v1:7; float v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_F_BFu9s { unsigned short v1:7; float v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_F_C { unsigned short v1:7; float v2; char v3; };
struct __attribute__((packed)) aBFu7s_F_D { unsigned short v1:7; float v2; double v3; };
struct __attribute__((packed)) aBFu7s_F_F { unsigned short v1:7; float v2; float v3; };
struct __attribute__((packed)) aBFu7s_F_I { unsigned short v1:7; float v2; int v3; };
struct __attribute__((packed)) aBFu7s_F_Ip { unsigned short v1:7; float v2; int * v3; };
struct __attribute__((packed)) aBFu7s_F_L { unsigned short v1:7; float v2; long long v3; };
struct __attribute__((packed)) aBFu7s_F_S { unsigned short v1:7; float v2; short v3; };
struct __attribute__((packed)) aBFu7s_F_Uc { unsigned short v1:7; float v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_F_Ui { unsigned short v1:7; float v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_F_Ul { unsigned short v1:7; float v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_F_Us { unsigned short v1:7; float v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_F_Vp { unsigned short v1:7; float v2; void * v3; };
struct __attribute__((packed)) aBFu7s_I { unsigned short v1:7; int v2; };
struct __attribute__((packed)) aBFu7s_I_BFu15i { unsigned short v1:7; int v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_I_BFu15ll { unsigned short v1:7; int v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_I_BFu15s { unsigned short v1:7; int v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_I_BFu16i { unsigned short v1:7; int v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_I_BFu16ll { unsigned short v1:7; int v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_I_BFu16s { unsigned short v1:7; int v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_I_BFu17i { unsigned short v1:7; int v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_I_BFu17ll { unsigned short v1:7; int v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_I_BFu1c { unsigned short v1:7; int v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_I_BFu1i { unsigned short v1:7; int v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_I_BFu1ll { unsigned short v1:7; int v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_I_BFu1s { unsigned short v1:7; int v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_I_BFu31i { unsigned short v1:7; int v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_I_BFu31ll { unsigned short v1:7; int v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_I_BFu32i { unsigned short v1:7; int v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_I_BFu32ll { unsigned short v1:7; int v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_I_BFu33 { unsigned short v1:7; int v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_I_BFu7c { unsigned short v1:7; int v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_I_BFu7i { unsigned short v1:7; int v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_I_BFu7ll { unsigned short v1:7; int v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_I_BFu7s { unsigned short v1:7; int v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_I_BFu8c { unsigned short v1:7; int v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_I_BFu8i { unsigned short v1:7; int v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_I_BFu8ll { unsigned short v1:7; int v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_I_BFu8s { unsigned short v1:7; int v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_I_BFu9i { unsigned short v1:7; int v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_I_BFu9ll { unsigned short v1:7; int v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_I_BFu9s { unsigned short v1:7; int v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_I_C { unsigned short v1:7; int v2; char v3; };
struct __attribute__((packed)) aBFu7s_I_D { unsigned short v1:7; int v2; double v3; };
struct __attribute__((packed)) aBFu7s_I_F { unsigned short v1:7; int v2; float v3; };
struct __attribute__((packed)) aBFu7s_I_I { unsigned short v1:7; int v2; int v3; };
struct __attribute__((packed)) aBFu7s_I_Ip { unsigned short v1:7; int v2; int * v3; };
struct __attribute__((packed)) aBFu7s_I_L { unsigned short v1:7; int v2; long long v3; };
struct __attribute__((packed)) aBFu7s_I_S { unsigned short v1:7; int v2; short v3; };
struct __attribute__((packed)) aBFu7s_I_Uc { unsigned short v1:7; int v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_I_Ui { unsigned short v1:7; int v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_I_Ul { unsigned short v1:7; int v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_I_Us { unsigned short v1:7; int v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_I_Vp { unsigned short v1:7; int v2; void * v3; };
struct __attribute__((packed)) aBFu7s_Ip { unsigned short v1:7; int * v2; };
struct __attribute__((packed)) aBFu7s_Ip_BFu15i { unsigned short v1:7; int * v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_Ip_BFu15ll { unsigned short v1:7; int * v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_Ip_BFu15s { unsigned short v1:7; int * v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_Ip_BFu16i { unsigned short v1:7; int * v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_Ip_BFu16ll { unsigned short v1:7; int * v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_Ip_BFu16s { unsigned short v1:7; int * v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_Ip_BFu17i { unsigned short v1:7; int * v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_Ip_BFu17ll { unsigned short v1:7; int * v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_Ip_BFu1c { unsigned short v1:7; int * v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_Ip_BFu1i { unsigned short v1:7; int * v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_Ip_BFu1ll { unsigned short v1:7; int * v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_Ip_BFu1s { unsigned short v1:7; int * v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_Ip_BFu31i { unsigned short v1:7; int * v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_Ip_BFu31ll { unsigned short v1:7; int * v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_Ip_BFu32i { unsigned short v1:7; int * v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_Ip_BFu32ll { unsigned short v1:7; int * v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_Ip_BFu33 { unsigned short v1:7; int * v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_Ip_BFu7c { unsigned short v1:7; int * v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_Ip_BFu7i { unsigned short v1:7; int * v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_Ip_BFu7ll { unsigned short v1:7; int * v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_Ip_BFu7s { unsigned short v1:7; int * v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_Ip_BFu8c { unsigned short v1:7; int * v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_Ip_BFu8i { unsigned short v1:7; int * v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_Ip_BFu8ll { unsigned short v1:7; int * v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_Ip_BFu8s { unsigned short v1:7; int * v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_Ip_BFu9i { unsigned short v1:7; int * v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_Ip_BFu9ll { unsigned short v1:7; int * v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_Ip_BFu9s { unsigned short v1:7; int * v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_Ip_C { unsigned short v1:7; int * v2; char v3; };
struct __attribute__((packed)) aBFu7s_Ip_D { unsigned short v1:7; int * v2; double v3; };
struct __attribute__((packed)) aBFu7s_Ip_F { unsigned short v1:7; int * v2; float v3; };
struct __attribute__((packed)) aBFu7s_Ip_I { unsigned short v1:7; int * v2; int v3; };
struct __attribute__((packed)) aBFu7s_Ip_Ip { unsigned short v1:7; int * v2; int * v3; };
struct __attribute__((packed)) aBFu7s_Ip_L { unsigned short v1:7; int * v2; long long v3; };
struct __attribute__((packed)) aBFu7s_Ip_S { unsigned short v1:7; int * v2; short v3; };
struct __attribute__((packed)) aBFu7s_Ip_Uc { unsigned short v1:7; int * v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_Ip_Ui { unsigned short v1:7; int * v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_Ip_Ul { unsigned short v1:7; int * v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_Ip_Us { unsigned short v1:7; int * v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_Ip_Vp { unsigned short v1:7; int * v2; void * v3; };
struct __attribute__((packed)) aBFu7s_L { unsigned short v1:7; long long v2; };
struct __attribute__((packed)) aBFu7s_L_BFu15i { unsigned short v1:7; long long v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_L_BFu15ll { unsigned short v1:7; long long v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_L_BFu15s { unsigned short v1:7; long long v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_L_BFu16i { unsigned short v1:7; long long v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_L_BFu16ll { unsigned short v1:7; long long v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_L_BFu16s { unsigned short v1:7; long long v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_L_BFu17i { unsigned short v1:7; long long v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_L_BFu17ll { unsigned short v1:7; long long v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_L_BFu1c { unsigned short v1:7; long long v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_L_BFu1i { unsigned short v1:7; long long v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_L_BFu1ll { unsigned short v1:7; long long v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_L_BFu1s { unsigned short v1:7; long long v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_L_BFu31i { unsigned short v1:7; long long v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_L_BFu31ll { unsigned short v1:7; long long v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_L_BFu32i { unsigned short v1:7; long long v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_L_BFu32ll { unsigned short v1:7; long long v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_L_BFu33 { unsigned short v1:7; long long v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_L_BFu7c { unsigned short v1:7; long long v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_L_BFu7i { unsigned short v1:7; long long v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_L_BFu7ll { unsigned short v1:7; long long v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_L_BFu7s { unsigned short v1:7; long long v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_L_BFu8c { unsigned short v1:7; long long v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_L_BFu8i { unsigned short v1:7; long long v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_L_BFu8ll { unsigned short v1:7; long long v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_L_BFu8s { unsigned short v1:7; long long v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_L_BFu9i { unsigned short v1:7; long long v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_L_BFu9ll { unsigned short v1:7; long long v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_L_BFu9s { unsigned short v1:7; long long v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_L_C { unsigned short v1:7; long long v2; char v3; };
struct __attribute__((packed)) aBFu7s_L_D { unsigned short v1:7; long long v2; double v3; };
struct __attribute__((packed)) aBFu7s_L_F { unsigned short v1:7; long long v2; float v3; };
struct __attribute__((packed)) aBFu7s_L_I { unsigned short v1:7; long long v2; int v3; };
struct __attribute__((packed)) aBFu7s_L_Ip { unsigned short v1:7; long long v2; int * v3; };
struct __attribute__((packed)) aBFu7s_L_L { unsigned short v1:7; long long v2; long long v3; };
struct __attribute__((packed)) aBFu7s_L_S { unsigned short v1:7; long long v2; short v3; };
struct __attribute__((packed)) aBFu7s_L_Uc { unsigned short v1:7; long long v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_L_Ui { unsigned short v1:7; long long v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_L_Ul { unsigned short v1:7; long long v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_L_Us { unsigned short v1:7; long long v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_L_Vp { unsigned short v1:7; long long v2; void * v3; };
struct __attribute__((packed)) aBFu7s_S { unsigned short v1:7; short v2; };
struct __attribute__((packed)) aBFu7s_S_BFu15i { unsigned short v1:7; short v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_S_BFu15ll { unsigned short v1:7; short v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_S_BFu15s { unsigned short v1:7; short v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_S_BFu16i { unsigned short v1:7; short v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_S_BFu16ll { unsigned short v1:7; short v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_S_BFu16s { unsigned short v1:7; short v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_S_BFu17i { unsigned short v1:7; short v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_S_BFu17ll { unsigned short v1:7; short v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_S_BFu1c { unsigned short v1:7; short v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_S_BFu1i { unsigned short v1:7; short v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_S_BFu1ll { unsigned short v1:7; short v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_S_BFu1s { unsigned short v1:7; short v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_S_BFu31i { unsigned short v1:7; short v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_S_BFu31ll { unsigned short v1:7; short v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_S_BFu32i { unsigned short v1:7; short v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_S_BFu32ll { unsigned short v1:7; short v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_S_BFu33 { unsigned short v1:7; short v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_S_BFu7c { unsigned short v1:7; short v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_S_BFu7i { unsigned short v1:7; short v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_S_BFu7ll { unsigned short v1:7; short v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_S_BFu7s { unsigned short v1:7; short v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_S_BFu8c { unsigned short v1:7; short v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_S_BFu8i { unsigned short v1:7; short v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_S_BFu8ll { unsigned short v1:7; short v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_S_BFu8s { unsigned short v1:7; short v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_S_BFu9i { unsigned short v1:7; short v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_S_BFu9ll { unsigned short v1:7; short v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_S_BFu9s { unsigned short v1:7; short v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_S_C { unsigned short v1:7; short v2; char v3; };
struct __attribute__((packed)) aBFu7s_S_D { unsigned short v1:7; short v2; double v3; };
struct __attribute__((packed)) aBFu7s_S_F { unsigned short v1:7; short v2; float v3; };
struct __attribute__((packed)) aBFu7s_S_I { unsigned short v1:7; short v2; int v3; };
struct __attribute__((packed)) aBFu7s_S_Ip { unsigned short v1:7; short v2; int * v3; };
struct __attribute__((packed)) aBFu7s_S_L { unsigned short v1:7; short v2; long long v3; };
struct __attribute__((packed)) aBFu7s_S_S { unsigned short v1:7; short v2; short v3; };
struct __attribute__((packed)) aBFu7s_S_Uc { unsigned short v1:7; short v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_S_Ui { unsigned short v1:7; short v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_S_Ul { unsigned short v1:7; short v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_S_Us { unsigned short v1:7; short v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_S_Vp { unsigned short v1:7; short v2; void * v3; };
struct __attribute__((packed)) aBFu7s_Uc { unsigned short v1:7; unsigned char v2; };
struct __attribute__((packed)) aBFu7s_Uc_BFu15i { unsigned short v1:7; unsigned char v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_Uc_BFu15ll { unsigned short v1:7; unsigned char v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_Uc_BFu15s { unsigned short v1:7; unsigned char v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_Uc_BFu16i { unsigned short v1:7; unsigned char v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_Uc_BFu16ll { unsigned short v1:7; unsigned char v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_Uc_BFu16s { unsigned short v1:7; unsigned char v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_Uc_BFu17i { unsigned short v1:7; unsigned char v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_Uc_BFu17ll { unsigned short v1:7; unsigned char v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_Uc_BFu1c { unsigned short v1:7; unsigned char v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_Uc_BFu1i { unsigned short v1:7; unsigned char v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_Uc_BFu1ll { unsigned short v1:7; unsigned char v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_Uc_BFu1s { unsigned short v1:7; unsigned char v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_Uc_BFu31i { unsigned short v1:7; unsigned char v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_Uc_BFu31ll { unsigned short v1:7; unsigned char v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_Uc_BFu32i { unsigned short v1:7; unsigned char v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_Uc_BFu32ll { unsigned short v1:7; unsigned char v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_Uc_BFu33 { unsigned short v1:7; unsigned char v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_Uc_BFu7c { unsigned short v1:7; unsigned char v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_Uc_BFu7i { unsigned short v1:7; unsigned char v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_Uc_BFu7ll { unsigned short v1:7; unsigned char v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_Uc_BFu7s { unsigned short v1:7; unsigned char v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_Uc_BFu8c { unsigned short v1:7; unsigned char v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_Uc_BFu8i { unsigned short v1:7; unsigned char v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_Uc_BFu8ll { unsigned short v1:7; unsigned char v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_Uc_BFu8s { unsigned short v1:7; unsigned char v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_Uc_BFu9i { unsigned short v1:7; unsigned char v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_Uc_BFu9ll { unsigned short v1:7; unsigned char v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_Uc_BFu9s { unsigned short v1:7; unsigned char v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_Uc_C { unsigned short v1:7; unsigned char v2; char v3; };
struct __attribute__((packed)) aBFu7s_Uc_D { unsigned short v1:7; unsigned char v2; double v3; };
struct __attribute__((packed)) aBFu7s_Uc_F { unsigned short v1:7; unsigned char v2; float v3; };
struct __attribute__((packed)) aBFu7s_Uc_I { unsigned short v1:7; unsigned char v2; int v3; };
struct __attribute__((packed)) aBFu7s_Uc_Ip { unsigned short v1:7; unsigned char v2; int * v3; };
struct __attribute__((packed)) aBFu7s_Uc_L { unsigned short v1:7; unsigned char v2; long long v3; };
struct __attribute__((packed)) aBFu7s_Uc_S { unsigned short v1:7; unsigned char v2; short v3; };
struct __attribute__((packed)) aBFu7s_Uc_Uc { unsigned short v1:7; unsigned char v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_Uc_Ui { unsigned short v1:7; unsigned char v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_Uc_Ul { unsigned short v1:7; unsigned char v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_Uc_Us { unsigned short v1:7; unsigned char v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_Uc_Vp { unsigned short v1:7; unsigned char v2; void * v3; };
struct __attribute__((packed)) aBFu7s_Ui { unsigned short v1:7; unsigned int v2; };
struct __attribute__((packed)) aBFu7s_Ui_BFu15i { unsigned short v1:7; unsigned int v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_Ui_BFu15ll { unsigned short v1:7; unsigned int v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_Ui_BFu15s { unsigned short v1:7; unsigned int v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_Ui_BFu16i { unsigned short v1:7; unsigned int v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_Ui_BFu16ll { unsigned short v1:7; unsigned int v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_Ui_BFu16s { unsigned short v1:7; unsigned int v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_Ui_BFu17i { unsigned short v1:7; unsigned int v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_Ui_BFu17ll { unsigned short v1:7; unsigned int v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_Ui_BFu1c { unsigned short v1:7; unsigned int v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_Ui_BFu1i { unsigned short v1:7; unsigned int v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_Ui_BFu1ll { unsigned short v1:7; unsigned int v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_Ui_BFu1s { unsigned short v1:7; unsigned int v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_Ui_BFu31i { unsigned short v1:7; unsigned int v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_Ui_BFu31ll { unsigned short v1:7; unsigned int v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_Ui_BFu32i { unsigned short v1:7; unsigned int v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_Ui_BFu32ll { unsigned short v1:7; unsigned int v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_Ui_BFu33 { unsigned short v1:7; unsigned int v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_Ui_BFu7c { unsigned short v1:7; unsigned int v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_Ui_BFu7i { unsigned short v1:7; unsigned int v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_Ui_BFu7ll { unsigned short v1:7; unsigned int v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_Ui_BFu7s { unsigned short v1:7; unsigned int v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_Ui_BFu8c { unsigned short v1:7; unsigned int v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_Ui_BFu8i { unsigned short v1:7; unsigned int v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_Ui_BFu8ll { unsigned short v1:7; unsigned int v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_Ui_BFu8s { unsigned short v1:7; unsigned int v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_Ui_BFu9i { unsigned short v1:7; unsigned int v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_Ui_BFu9ll { unsigned short v1:7; unsigned int v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_Ui_BFu9s { unsigned short v1:7; unsigned int v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_Ui_C { unsigned short v1:7; unsigned int v2; char v3; };
struct __attribute__((packed)) aBFu7s_Ui_D { unsigned short v1:7; unsigned int v2; double v3; };
struct __attribute__((packed)) aBFu7s_Ui_F { unsigned short v1:7; unsigned int v2; float v3; };
struct __attribute__((packed)) aBFu7s_Ui_I { unsigned short v1:7; unsigned int v2; int v3; };
struct __attribute__((packed)) aBFu7s_Ui_Ip { unsigned short v1:7; unsigned int v2; int * v3; };
struct __attribute__((packed)) aBFu7s_Ui_L { unsigned short v1:7; unsigned int v2; long long v3; };
struct __attribute__((packed)) aBFu7s_Ui_S { unsigned short v1:7; unsigned int v2; short v3; };
struct __attribute__((packed)) aBFu7s_Ui_Uc { unsigned short v1:7; unsigned int v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_Ui_Ui { unsigned short v1:7; unsigned int v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_Ui_Ul { unsigned short v1:7; unsigned int v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_Ui_Us { unsigned short v1:7; unsigned int v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_Ui_Vp { unsigned short v1:7; unsigned int v2; void * v3; };
struct __attribute__((packed)) aBFu7s_Ul { unsigned short v1:7; unsigned long long v2; };
struct __attribute__((packed)) aBFu7s_Ul_BFu15i { unsigned short v1:7; unsigned long long v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_Ul_BFu15ll { unsigned short v1:7; unsigned long long v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_Ul_BFu15s { unsigned short v1:7; unsigned long long v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_Ul_BFu16i { unsigned short v1:7; unsigned long long v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_Ul_BFu16ll { unsigned short v1:7; unsigned long long v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_Ul_BFu16s { unsigned short v1:7; unsigned long long v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_Ul_BFu17i { unsigned short v1:7; unsigned long long v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_Ul_BFu17ll { unsigned short v1:7; unsigned long long v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_Ul_BFu1c { unsigned short v1:7; unsigned long long v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_Ul_BFu1i { unsigned short v1:7; unsigned long long v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_Ul_BFu1ll { unsigned short v1:7; unsigned long long v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_Ul_BFu1s { unsigned short v1:7; unsigned long long v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_Ul_BFu31i { unsigned short v1:7; unsigned long long v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_Ul_BFu31ll { unsigned short v1:7; unsigned long long v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_Ul_BFu32i { unsigned short v1:7; unsigned long long v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_Ul_BFu32ll { unsigned short v1:7; unsigned long long v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_Ul_BFu33 { unsigned short v1:7; unsigned long long v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_Ul_BFu7c { unsigned short v1:7; unsigned long long v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_Ul_BFu7i { unsigned short v1:7; unsigned long long v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_Ul_BFu7ll { unsigned short v1:7; unsigned long long v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_Ul_BFu7s { unsigned short v1:7; unsigned long long v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_Ul_BFu8c { unsigned short v1:7; unsigned long long v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_Ul_BFu8i { unsigned short v1:7; unsigned long long v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_Ul_BFu8ll { unsigned short v1:7; unsigned long long v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_Ul_BFu8s { unsigned short v1:7; unsigned long long v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_Ul_BFu9i { unsigned short v1:7; unsigned long long v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_Ul_BFu9ll { unsigned short v1:7; unsigned long long v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_Ul_BFu9s { unsigned short v1:7; unsigned long long v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_Ul_C { unsigned short v1:7; unsigned long long v2; char v3; };
struct __attribute__((packed)) aBFu7s_Ul_D { unsigned short v1:7; unsigned long long v2; double v3; };
struct __attribute__((packed)) aBFu7s_Ul_F { unsigned short v1:7; unsigned long long v2; float v3; };
struct __attribute__((packed)) aBFu7s_Ul_I { unsigned short v1:7; unsigned long long v2; int v3; };
struct __attribute__((packed)) aBFu7s_Ul_Ip { unsigned short v1:7; unsigned long long v2; int * v3; };
struct __attribute__((packed)) aBFu7s_Ul_L { unsigned short v1:7; unsigned long long v2; long long v3; };
struct __attribute__((packed)) aBFu7s_Ul_S { unsigned short v1:7; unsigned long long v2; short v3; };
struct __attribute__((packed)) aBFu7s_Ul_Uc { unsigned short v1:7; unsigned long long v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_Ul_Ui { unsigned short v1:7; unsigned long long v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_Ul_Ul { unsigned short v1:7; unsigned long long v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_Ul_Us { unsigned short v1:7; unsigned long long v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_Ul_Vp { unsigned short v1:7; unsigned long long v2; void * v3; };
struct __attribute__((packed)) aBFu7s_Us { unsigned short v1:7; unsigned short v2; };
struct __attribute__((packed)) aBFu7s_Us_BFu15i { unsigned short v1:7; unsigned short v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_Us_BFu15ll { unsigned short v1:7; unsigned short v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_Us_BFu15s { unsigned short v1:7; unsigned short v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_Us_BFu16i { unsigned short v1:7; unsigned short v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_Us_BFu16ll { unsigned short v1:7; unsigned short v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_Us_BFu16s { unsigned short v1:7; unsigned short v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_Us_BFu17i { unsigned short v1:7; unsigned short v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_Us_BFu17ll { unsigned short v1:7; unsigned short v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_Us_BFu1c { unsigned short v1:7; unsigned short v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_Us_BFu1i { unsigned short v1:7; unsigned short v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_Us_BFu1ll { unsigned short v1:7; unsigned short v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_Us_BFu1s { unsigned short v1:7; unsigned short v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_Us_BFu31i { unsigned short v1:7; unsigned short v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_Us_BFu31ll { unsigned short v1:7; unsigned short v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_Us_BFu32i { unsigned short v1:7; unsigned short v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_Us_BFu32ll { unsigned short v1:7; unsigned short v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_Us_BFu33 { unsigned short v1:7; unsigned short v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_Us_BFu7c { unsigned short v1:7; unsigned short v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_Us_BFu7i { unsigned short v1:7; unsigned short v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_Us_BFu7ll { unsigned short v1:7; unsigned short v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_Us_BFu7s { unsigned short v1:7; unsigned short v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_Us_BFu8c { unsigned short v1:7; unsigned short v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_Us_BFu8i { unsigned short v1:7; unsigned short v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_Us_BFu8ll { unsigned short v1:7; unsigned short v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_Us_BFu8s { unsigned short v1:7; unsigned short v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_Us_BFu9i { unsigned short v1:7; unsigned short v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_Us_BFu9ll { unsigned short v1:7; unsigned short v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_Us_BFu9s { unsigned short v1:7; unsigned short v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_Us_C { unsigned short v1:7; unsigned short v2; char v3; };
struct __attribute__((packed)) aBFu7s_Us_D { unsigned short v1:7; unsigned short v2; double v3; };
struct __attribute__((packed)) aBFu7s_Us_F { unsigned short v1:7; unsigned short v2; float v3; };
struct __attribute__((packed)) aBFu7s_Us_I { unsigned short v1:7; unsigned short v2; int v3; };
struct __attribute__((packed)) aBFu7s_Us_Ip { unsigned short v1:7; unsigned short v2; int * v3; };
struct __attribute__((packed)) aBFu7s_Us_L { unsigned short v1:7; unsigned short v2; long long v3; };
struct __attribute__((packed)) aBFu7s_Us_S { unsigned short v1:7; unsigned short v2; short v3; };
struct __attribute__((packed)) aBFu7s_Us_Uc { unsigned short v1:7; unsigned short v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_Us_Ui { unsigned short v1:7; unsigned short v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_Us_Ul { unsigned short v1:7; unsigned short v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_Us_Us { unsigned short v1:7; unsigned short v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_Us_Vp { unsigned short v1:7; unsigned short v2; void * v3; };
struct __attribute__((packed)) aBFu7s_Vp { unsigned short v1:7; void * v2; };
struct __attribute__((packed)) aBFu7s_Vp_BFu15i { unsigned short v1:7; void * v2; unsigned int v3:15; };
struct __attribute__((packed)) aBFu7s_Vp_BFu15ll { unsigned short v1:7; void * v2; unsigned long long v3:15; };
struct __attribute__((packed)) aBFu7s_Vp_BFu15s { unsigned short v1:7; void * v2; unsigned short v3:15; };
struct __attribute__((packed)) aBFu7s_Vp_BFu16i { unsigned short v1:7; void * v2; unsigned int v3:16; };
struct __attribute__((packed)) aBFu7s_Vp_BFu16ll { unsigned short v1:7; void * v2; unsigned long long v3:16; };
struct __attribute__((packed)) aBFu7s_Vp_BFu16s { unsigned short v1:7; void * v2; unsigned short v3:16; };
struct __attribute__((packed)) aBFu7s_Vp_BFu17i { unsigned short v1:7; void * v2; unsigned int v3:17; };
struct __attribute__((packed)) aBFu7s_Vp_BFu17ll { unsigned short v1:7; void * v2; unsigned long long v3:17; };
struct __attribute__((packed)) aBFu7s_Vp_BFu1c { unsigned short v1:7; void * v2; unsigned char v3:1; };
struct __attribute__((packed)) aBFu7s_Vp_BFu1i { unsigned short v1:7; void * v2; unsigned int v3:1; };
struct __attribute__((packed)) aBFu7s_Vp_BFu1ll { unsigned short v1:7; void * v2; unsigned long long v3:1; };
struct __attribute__((packed)) aBFu7s_Vp_BFu1s { unsigned short v1:7; void * v2; unsigned short v3:1; };
struct __attribute__((packed)) aBFu7s_Vp_BFu31i { unsigned short v1:7; void * v2; unsigned int v3:31; };
struct __attribute__((packed)) aBFu7s_Vp_BFu31ll { unsigned short v1:7; void * v2; unsigned long long v3:31; };
struct __attribute__((packed)) aBFu7s_Vp_BFu32i { unsigned short v1:7; void * v2; unsigned int v3:32; };
struct __attribute__((packed)) aBFu7s_Vp_BFu32ll { unsigned short v1:7; void * v2; unsigned long long v3:32; };
struct __attribute__((packed)) aBFu7s_Vp_BFu33 { unsigned short v1:7; void * v2; unsigned long long v3:33; };
struct __attribute__((packed)) aBFu7s_Vp_BFu7c { unsigned short v1:7; void * v2; unsigned char v3:7; };
struct __attribute__((packed)) aBFu7s_Vp_BFu7i { unsigned short v1:7; void * v2; unsigned int v3:7; };
struct __attribute__((packed)) aBFu7s_Vp_BFu7ll { unsigned short v1:7; void * v2; unsigned long long v3:7; };
struct __attribute__((packed)) aBFu7s_Vp_BFu7s { unsigned short v1:7; void * v2; unsigned short v3:7; };
struct __attribute__((packed)) aBFu7s_Vp_BFu8c { unsigned short v1:7; void * v2; unsigned char v3:8; };
struct __attribute__((packed)) aBFu7s_Vp_BFu8i { unsigned short v1:7; void * v2; unsigned int v3:8; };
struct __attribute__((packed)) aBFu7s_Vp_BFu8ll { unsigned short v1:7; void * v2; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu7s_Vp_BFu8s { unsigned short v1:7; void * v2; unsigned short v3:8; };
struct __attribute__((packed)) aBFu7s_Vp_BFu9i { unsigned short v1:7; void * v2; unsigned int v3:9; };
struct __attribute__((packed)) aBFu7s_Vp_BFu9ll { unsigned short v1:7; void * v2; unsigned long long v3:9; };
struct __attribute__((packed)) aBFu7s_Vp_BFu9s { unsigned short v1:7; void * v2; unsigned short v3:9; };
struct __attribute__((packed)) aBFu7s_Vp_C { unsigned short v1:7; void * v2; char v3; };
struct __attribute__((packed)) aBFu7s_Vp_D { unsigned short v1:7; void * v2; double v3; };
struct __attribute__((packed)) aBFu7s_Vp_F { unsigned short v1:7; void * v2; float v3; };
struct __attribute__((packed)) aBFu7s_Vp_I { unsigned short v1:7; void * v2; int v3; };
struct __attribute__((packed)) aBFu7s_Vp_Ip { unsigned short v1:7; void * v2; int * v3; };
struct __attribute__((packed)) aBFu7s_Vp_L { unsigned short v1:7; void * v2; long long v3; };
struct __attribute__((packed)) aBFu7s_Vp_S { unsigned short v1:7; void * v2; short v3; };
struct __attribute__((packed)) aBFu7s_Vp_Uc { unsigned short v1:7; void * v2; unsigned char v3; };
struct __attribute__((packed)) aBFu7s_Vp_Ui { unsigned short v1:7; void * v2; unsigned int v3; };
struct __attribute__((packed)) aBFu7s_Vp_Ul { unsigned short v1:7; void * v2; unsigned long long v3; };
struct __attribute__((packed)) aBFu7s_Vp_Us { unsigned short v1:7; void * v2; unsigned short v3; };
struct __attribute__((packed)) aBFu7s_Vp_Vp { unsigned short v1:7; void * v2; void * v3; };
struct __attribute__((packed)) aBFu8c { unsigned char v1:8; };
struct __attribute__((packed)) aBFu8c_BFs8c { unsigned char v1:8; signed char v2:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8c { unsigned char v1:8; signed char v2:8; signed char v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8c_BFs8c { unsigned char v1:8; signed char v2:8; signed char v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8c_BFs8i { unsigned char v1:8; signed char v2:8; signed char v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8c_BFs8ll { unsigned char v1:8; signed char v2:8; signed char v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8c_BFs8s { unsigned char v1:8; signed char v2:8; signed char v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8c_BFu8c { unsigned char v1:8; signed char v2:8; signed char v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8c_BFu8i { unsigned char v1:8; signed char v2:8; signed char v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8c_BFu8ll { unsigned char v1:8; signed char v2:8; signed char v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8c_BFu8s { unsigned char v1:8; signed char v2:8; signed char v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8i { unsigned char v1:8; signed char v2:8; signed int v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8i_BFs8c { unsigned char v1:8; signed char v2:8; signed int v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8i_BFs8i { unsigned char v1:8; signed char v2:8; signed int v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8i_BFs8ll { unsigned char v1:8; signed char v2:8; signed int v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8i_BFs8s { unsigned char v1:8; signed char v2:8; signed int v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8i_BFu8c { unsigned char v1:8; signed char v2:8; signed int v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8i_BFu8i { unsigned char v1:8; signed char v2:8; signed int v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8i_BFu8ll { unsigned char v1:8; signed char v2:8; signed int v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8i_BFu8s { unsigned char v1:8; signed char v2:8; signed int v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8ll { unsigned char v1:8; signed char v2:8; signed long long v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8ll_BFs8c { unsigned char v1:8; signed char v2:8; signed long long v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8ll_BFs8i { unsigned char v1:8; signed char v2:8; signed long long v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8ll_BFs8ll { unsigned char v1:8; signed char v2:8; signed long long v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8ll_BFs8s { unsigned char v1:8; signed char v2:8; signed long long v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8ll_BFu8c { unsigned char v1:8; signed char v2:8; signed long long v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8ll_BFu8i { unsigned char v1:8; signed char v2:8; signed long long v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8ll_BFu8ll { unsigned char v1:8; signed char v2:8; signed long long v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8ll_BFu8s { unsigned char v1:8; signed char v2:8; signed long long v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8s { unsigned char v1:8; signed char v2:8; signed short v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8s_BFs8c { unsigned char v1:8; signed char v2:8; signed short v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8s_BFs8i { unsigned char v1:8; signed char v2:8; signed short v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8s_BFs8ll { unsigned char v1:8; signed char v2:8; signed short v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8s_BFs8s { unsigned char v1:8; signed char v2:8; signed short v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8s_BFu8c { unsigned char v1:8; signed char v2:8; signed short v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8s_BFu8i { unsigned char v1:8; signed char v2:8; signed short v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8s_BFu8ll { unsigned char v1:8; signed char v2:8; signed short v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFs8s_BFu8s { unsigned char v1:8; signed char v2:8; signed short v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8c { unsigned char v1:8; signed char v2:8; unsigned char v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8c_BFs8c { unsigned char v1:8; signed char v2:8; unsigned char v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8c_BFs8i { unsigned char v1:8; signed char v2:8; unsigned char v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8c_BFs8ll { unsigned char v1:8; signed char v2:8; unsigned char v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8c_BFs8s { unsigned char v1:8; signed char v2:8; unsigned char v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8c_BFu8c { unsigned char v1:8; signed char v2:8; unsigned char v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8c_BFu8i { unsigned char v1:8; signed char v2:8; unsigned char v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8c_BFu8ll { unsigned char v1:8; signed char v2:8; unsigned char v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8c_BFu8s { unsigned char v1:8; signed char v2:8; unsigned char v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8i { unsigned char v1:8; signed char v2:8; unsigned int v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8i_BFs8c { unsigned char v1:8; signed char v2:8; unsigned int v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8i_BFs8i { unsigned char v1:8; signed char v2:8; unsigned int v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8i_BFs8ll { unsigned char v1:8; signed char v2:8; unsigned int v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8i_BFs8s { unsigned char v1:8; signed char v2:8; unsigned int v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8i_BFu8c { unsigned char v1:8; signed char v2:8; unsigned int v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8i_BFu8i { unsigned char v1:8; signed char v2:8; unsigned int v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8i_BFu8ll { unsigned char v1:8; signed char v2:8; unsigned int v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8i_BFu8s { unsigned char v1:8; signed char v2:8; unsigned int v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8ll { unsigned char v1:8; signed char v2:8; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8ll_BFs8c { unsigned char v1:8; signed char v2:8; unsigned long long v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8ll_BFs8i { unsigned char v1:8; signed char v2:8; unsigned long long v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8ll_BFs8ll { unsigned char v1:8; signed char v2:8; unsigned long long v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8ll_BFs8s { unsigned char v1:8; signed char v2:8; unsigned long long v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8ll_BFu8c { unsigned char v1:8; signed char v2:8; unsigned long long v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8ll_BFu8i { unsigned char v1:8; signed char v2:8; unsigned long long v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8ll_BFu8ll { unsigned char v1:8; signed char v2:8; unsigned long long v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8ll_BFu8s { unsigned char v1:8; signed char v2:8; unsigned long long v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8s { unsigned char v1:8; signed char v2:8; unsigned short v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8s_BFs8c { unsigned char v1:8; signed char v2:8; unsigned short v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8s_BFs8i { unsigned char v1:8; signed char v2:8; unsigned short v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8s_BFs8ll { unsigned char v1:8; signed char v2:8; unsigned short v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8s_BFs8s { unsigned char v1:8; signed char v2:8; unsigned short v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8s_BFu8c { unsigned char v1:8; signed char v2:8; unsigned short v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8s_BFu8i { unsigned char v1:8; signed char v2:8; unsigned short v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8s_BFu8ll { unsigned char v1:8; signed char v2:8; unsigned short v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8c_BFu8s_BFu8s { unsigned char v1:8; signed char v2:8; unsigned short v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i { unsigned char v1:8; signed int v2:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8c { unsigned char v1:8; signed int v2:8; signed char v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8c_BFs8c { unsigned char v1:8; signed int v2:8; signed char v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8c_BFs8i { unsigned char v1:8; signed int v2:8; signed char v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8c_BFs8ll { unsigned char v1:8; signed int v2:8; signed char v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8c_BFs8s { unsigned char v1:8; signed int v2:8; signed char v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8c_BFu8c { unsigned char v1:8; signed int v2:8; signed char v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8c_BFu8i { unsigned char v1:8; signed int v2:8; signed char v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8c_BFu8ll { unsigned char v1:8; signed int v2:8; signed char v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8c_BFu8s { unsigned char v1:8; signed int v2:8; signed char v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8i { unsigned char v1:8; signed int v2:8; signed int v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8i_BFs8c { unsigned char v1:8; signed int v2:8; signed int v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8i_BFs8i { unsigned char v1:8; signed int v2:8; signed int v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8i_BFs8ll { unsigned char v1:8; signed int v2:8; signed int v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8i_BFs8s { unsigned char v1:8; signed int v2:8; signed int v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8i_BFu8c { unsigned char v1:8; signed int v2:8; signed int v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8i_BFu8i { unsigned char v1:8; signed int v2:8; signed int v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8i_BFu8ll { unsigned char v1:8; signed int v2:8; signed int v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8i_BFu8s { unsigned char v1:8; signed int v2:8; signed int v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8ll { unsigned char v1:8; signed int v2:8; signed long long v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8ll_BFs8c { unsigned char v1:8; signed int v2:8; signed long long v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8ll_BFs8i { unsigned char v1:8; signed int v2:8; signed long long v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8ll_BFs8ll { unsigned char v1:8; signed int v2:8; signed long long v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8ll_BFs8s { unsigned char v1:8; signed int v2:8; signed long long v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8ll_BFu8c { unsigned char v1:8; signed int v2:8; signed long long v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8ll_BFu8i { unsigned char v1:8; signed int v2:8; signed long long v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8ll_BFu8ll { unsigned char v1:8; signed int v2:8; signed long long v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8ll_BFu8s { unsigned char v1:8; signed int v2:8; signed long long v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8s { unsigned char v1:8; signed int v2:8; signed short v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8s_BFs8c { unsigned char v1:8; signed int v2:8; signed short v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8s_BFs8i { unsigned char v1:8; signed int v2:8; signed short v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8s_BFs8ll { unsigned char v1:8; signed int v2:8; signed short v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8s_BFs8s { unsigned char v1:8; signed int v2:8; signed short v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8s_BFu8c { unsigned char v1:8; signed int v2:8; signed short v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8s_BFu8i { unsigned char v1:8; signed int v2:8; signed short v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8s_BFu8ll { unsigned char v1:8; signed int v2:8; signed short v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFs8s_BFu8s { unsigned char v1:8; signed int v2:8; signed short v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8c { unsigned char v1:8; signed int v2:8; unsigned char v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8c_BFs8c { unsigned char v1:8; signed int v2:8; unsigned char v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8c_BFs8i { unsigned char v1:8; signed int v2:8; unsigned char v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8c_BFs8ll { unsigned char v1:8; signed int v2:8; unsigned char v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8c_BFs8s { unsigned char v1:8; signed int v2:8; unsigned char v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8c_BFu8c { unsigned char v1:8; signed int v2:8; unsigned char v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8c_BFu8i { unsigned char v1:8; signed int v2:8; unsigned char v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8c_BFu8ll { unsigned char v1:8; signed int v2:8; unsigned char v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8c_BFu8s { unsigned char v1:8; signed int v2:8; unsigned char v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8i { unsigned char v1:8; signed int v2:8; unsigned int v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8i_BFs8c { unsigned char v1:8; signed int v2:8; unsigned int v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8i_BFs8i { unsigned char v1:8; signed int v2:8; unsigned int v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8i_BFs8ll { unsigned char v1:8; signed int v2:8; unsigned int v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8i_BFs8s { unsigned char v1:8; signed int v2:8; unsigned int v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8i_BFu8c { unsigned char v1:8; signed int v2:8; unsigned int v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8i_BFu8i { unsigned char v1:8; signed int v2:8; unsigned int v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8i_BFu8ll { unsigned char v1:8; signed int v2:8; unsigned int v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8i_BFu8s { unsigned char v1:8; signed int v2:8; unsigned int v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8ll { unsigned char v1:8; signed int v2:8; unsigned long long v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8ll_BFs8c { unsigned char v1:8; signed int v2:8; unsigned long long v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8ll_BFs8i { unsigned char v1:8; signed int v2:8; unsigned long long v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8ll_BFs8ll { unsigned char v1:8; signed int v2:8; unsigned long long v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8ll_BFs8s { unsigned char v1:8; signed int v2:8; unsigned long long v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8ll_BFu8c { unsigned char v1:8; signed int v2:8; unsigned long long v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8ll_BFu8i { unsigned char v1:8; signed int v2:8; unsigned long long v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8ll_BFu8ll { unsigned char v1:8; signed int v2:8; unsigned long long v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8ll_BFu8s { unsigned char v1:8; signed int v2:8; unsigned long long v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8s { unsigned char v1:8; signed int v2:8; unsigned short v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8s_BFs8c { unsigned char v1:8; signed int v2:8; unsigned short v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8s_BFs8i { unsigned char v1:8; signed int v2:8; unsigned short v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8s_BFs8ll { unsigned char v1:8; signed int v2:8; unsigned short v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8s_BFs8s { unsigned char v1:8; signed int v2:8; unsigned short v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8s_BFu8c { unsigned char v1:8; signed int v2:8; unsigned short v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8s_BFu8i { unsigned char v1:8; signed int v2:8; unsigned short v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8s_BFu8ll { unsigned char v1:8; signed int v2:8; unsigned short v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8i_BFu8s_BFu8s { unsigned char v1:8; signed int v2:8; unsigned short v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll { unsigned char v1:8; signed long long v2:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8c { unsigned char v1:8; signed long long v2:8; signed char v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8c_BFs8c { unsigned char v1:8; signed long long v2:8; signed char v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8c_BFs8i { unsigned char v1:8; signed long long v2:8; signed char v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8c_BFs8ll { unsigned char v1:8; signed long long v2:8; signed char v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8c_BFs8s { unsigned char v1:8; signed long long v2:8; signed char v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8c_BFu8c { unsigned char v1:8; signed long long v2:8; signed char v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8c_BFu8i { unsigned char v1:8; signed long long v2:8; signed char v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8c_BFu8ll { unsigned char v1:8; signed long long v2:8; signed char v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8c_BFu8s { unsigned char v1:8; signed long long v2:8; signed char v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8i { unsigned char v1:8; signed long long v2:8; signed int v3:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8i_BFs8c { unsigned char v1:8; signed long long v2:8; signed int v3:8; signed char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8i_BFs8i { unsigned char v1:8; signed long long v2:8; signed int v3:8; signed int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8i_BFs8ll { unsigned char v1:8; signed long long v2:8; signed int v3:8; signed long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8i_BFs8s { unsigned char v1:8; signed long long v2:8; signed int v3:8; signed short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8i_BFu8c { unsigned char v1:8; signed long long v2:8; signed int v3:8; unsigned char v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8i_BFu8i { unsigned char v1:8; signed long long v2:8; signed int v3:8; unsigned int v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8i_BFu8ll { unsigned char v1:8; signed long long v2:8; signed int v3:8; unsigned long long v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8i_BFu8s { unsigned char v1:8; signed long long v2:8; signed int v3:8; unsigned short v4:8; };
struct __attribute__((packed)) aBFu8c_BFs8ll_BFs8ll { unsigned char v1:8; signed long long v2:8; signed long long v3:8; };


static void Test_aBFu7ll_BFu8s_BFu9s()
{
  {
    init_simple_test("aBFu7ll_BFu8s_BFu9s");
    static STRUCT_IF_C aBFu7ll_BFu8s_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu8s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu8s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu8s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu8s_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7ll_BFu8s_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7ll_BFu8s_BFu9s");
    set_bf_and_test(lv, v3, 1, 7, 9, 1, "aBFu7ll_BFu8s_BFu9s");
    set_bf_and_test(lv, v3, 1, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu8s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu8s_BFu9s, aBFu7ll_BFu8s_BFu9s)
//============================================================================



static void Test_aBFu7ll_BFu8s_C()
{
  {
    init_simple_test("aBFu7ll_BFu8s_C");
    static STRUCT_IF_C aBFu7ll_BFu8s_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu8s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu8s_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu8s_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu8s_C");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7ll_BFu8s_C");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7ll_BFu8s_C");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu8s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu8s_C, aBFu7ll_BFu8s_C)
//============================================================================



static void Test_aBFu7ll_BFu8s_D()
{
  {
    init_simple_test("aBFu7ll_BFu8s_D");
    static STRUCT_IF_C aBFu7ll_BFu8s_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_BFu8s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu8s_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu8s_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu8s_D");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7ll_BFu8s_D");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7ll_BFu8s_D");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu8s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu8s_D, aBFu7ll_BFu8s_D)
//============================================================================



static void Test_aBFu7ll_BFu8s_F()
{
  {
    init_simple_test("aBFu7ll_BFu8s_F");
    static STRUCT_IF_C aBFu7ll_BFu8s_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu8s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu8s_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu8s_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu8s_F");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7ll_BFu8s_F");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7ll_BFu8s_F");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu8s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu8s_F, aBFu7ll_BFu8s_F)
//============================================================================



static void Test_aBFu7ll_BFu8s_I()
{
  {
    init_simple_test("aBFu7ll_BFu8s_I");
    static STRUCT_IF_C aBFu7ll_BFu8s_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu8s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu8s_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu8s_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu8s_I");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7ll_BFu8s_I");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7ll_BFu8s_I");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu8s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu8s_I, aBFu7ll_BFu8s_I)
//============================================================================



static void Test_aBFu7ll_BFu8s_Ip()
{
  {
    init_simple_test("aBFu7ll_BFu8s_Ip");
    static STRUCT_IF_C aBFu7ll_BFu8s_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_BFu8s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu8s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu8s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu8s_Ip");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7ll_BFu8s_Ip");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7ll_BFu8s_Ip");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu8s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu8s_Ip, aBFu7ll_BFu8s_Ip)
//============================================================================



static void Test_aBFu7ll_BFu8s_L()
{
  {
    init_simple_test("aBFu7ll_BFu8s_L");
    static STRUCT_IF_C aBFu7ll_BFu8s_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_BFu8s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu8s_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu8s_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu8s_L");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7ll_BFu8s_L");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7ll_BFu8s_L");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu8s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu8s_L, aBFu7ll_BFu8s_L)
//============================================================================



static void Test_aBFu7ll_BFu8s_S()
{
  {
    init_simple_test("aBFu7ll_BFu8s_S");
    static STRUCT_IF_C aBFu7ll_BFu8s_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu8s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu8s_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu8s_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu8s_S");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7ll_BFu8s_S");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7ll_BFu8s_S");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu8s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu8s_S, aBFu7ll_BFu8s_S)
//============================================================================



static void Test_aBFu7ll_BFu8s_Uc()
{
  {
    init_simple_test("aBFu7ll_BFu8s_Uc");
    static STRUCT_IF_C aBFu7ll_BFu8s_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu8s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu8s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu8s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu8s_Uc");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7ll_BFu8s_Uc");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7ll_BFu8s_Uc");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu8s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu8s_Uc, aBFu7ll_BFu8s_Uc)
//============================================================================



static void Test_aBFu7ll_BFu8s_Ui()
{
  {
    init_simple_test("aBFu7ll_BFu8s_Ui");
    static STRUCT_IF_C aBFu7ll_BFu8s_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu8s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu8s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu8s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu8s_Ui");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7ll_BFu8s_Ui");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7ll_BFu8s_Ui");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu8s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu8s_Ui, aBFu7ll_BFu8s_Ui)
//============================================================================



static void Test_aBFu7ll_BFu8s_Ul()
{
  {
    init_simple_test("aBFu7ll_BFu8s_Ul");
    static STRUCT_IF_C aBFu7ll_BFu8s_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_BFu8s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu8s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu8s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu8s_Ul");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7ll_BFu8s_Ul");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7ll_BFu8s_Ul");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu8s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu8s_Ul, aBFu7ll_BFu8s_Ul)
//============================================================================



static void Test_aBFu7ll_BFu8s_Us()
{
  {
    init_simple_test("aBFu7ll_BFu8s_Us");
    static STRUCT_IF_C aBFu7ll_BFu8s_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu8s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu8s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu8s_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu8s_Us");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7ll_BFu8s_Us");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7ll_BFu8s_Us");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu8s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu8s_Us, aBFu7ll_BFu8s_Us)
//============================================================================



static void Test_aBFu7ll_BFu8s_Vp()
{
  {
    init_simple_test("aBFu7ll_BFu8s_Vp");
    static STRUCT_IF_C aBFu7ll_BFu8s_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_BFu8s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu8s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu8s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu8s_Vp");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7ll_BFu8s_Vp");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7ll_BFu8s_Vp");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu8s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu8s_Vp, aBFu7ll_BFu8s_Vp)
//============================================================================



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



static void Test_aBFu7ll_BFu9i_BFu15i()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu15i");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7ll_BFu9i_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7ll_BFu9i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu15i, aBFu7ll_BFu9i_BFu15i)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu15ll()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu15ll");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7ll_BFu9i_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7ll_BFu9i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu15ll, aBFu7ll_BFu9i_BFu15ll)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu15s()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu15s");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7ll_BFu9i_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7ll_BFu9i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu15s, aBFu7ll_BFu9i_BFu15s)
//============================================================================



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



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



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



static void Test_aBFu7ll_BFu9i_BFu17i()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu17i");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_BFu9i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7ll_BFu9i_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7ll_BFu9i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu17i, aBFu7ll_BFu9i_BFu17i)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu17ll()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu17ll");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_BFu9i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7ll_BFu9i_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7ll_BFu9i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu17ll, aBFu7ll_BFu9i_BFu17ll)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu1c()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu1c");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu1c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu1c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu1c");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_BFu9i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu1c, aBFu7ll_BFu9i_BFu1c)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu1i()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu1i");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu1i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu1i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu1i");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_BFu9i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu1i, aBFu7ll_BFu9i_BFu1i)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu1ll()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu1ll");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu1ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu1ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu1ll");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_BFu9i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu1ll, aBFu7ll_BFu9i_BFu1ll)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu1s()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu1s");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu1s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu1s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu1s");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_BFu9i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu1s, aBFu7ll_BFu9i_BFu1s)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu31i()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu31i");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7ll_BFu9i_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7ll_BFu9i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu31i, aBFu7ll_BFu9i_BFu31i)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu31ll()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu31ll");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7ll_BFu9i_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7ll_BFu9i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu31ll, aBFu7ll_BFu9i_BFu31ll)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu32i()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu32i");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7ll_BFu9i_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7ll_BFu9i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu32i, aBFu7ll_BFu9i_BFu32i)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu32ll()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu32ll");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7ll_BFu9i_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7ll_BFu9i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu32ll, aBFu7ll_BFu9i_BFu32ll)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu33()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu33");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_BFu9i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, 1, "aBFu7ll_BFu9i_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, hide_ull(1LL<<32), "aBFu7ll_BFu9i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu33, aBFu7ll_BFu9i_BFu33)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu7c()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu7c");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_BFu9i_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu7c, aBFu7ll_BFu9i_BFu7c)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu7i()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu7i");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_BFu9i_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu7i, aBFu7ll_BFu9i_BFu7i)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu7ll()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu7ll");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_BFu9i_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu7ll, aBFu7ll_BFu9i_BFu7ll)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu7s()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu7s");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_BFu9i_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu7s, aBFu7ll_BFu9i_BFu7s)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu8c()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu8c");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_BFu9i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_BFu9i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu8c, aBFu7ll_BFu9i_BFu8c)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu8i()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu8i");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_BFu9i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_BFu9i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu8i, aBFu7ll_BFu9i_BFu8i)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu8ll()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu8ll");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_BFu9i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_BFu9i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu8ll, aBFu7ll_BFu9i_BFu8ll)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu8s()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu8s");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_BFu9i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_BFu9i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu8s, aBFu7ll_BFu9i_BFu8s)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu9i()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu9i");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu9i, aBFu7ll_BFu9i_BFu9i)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu9ll()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu9ll");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu9ll, aBFu7ll_BFu9i_BFu9ll)
//============================================================================



static void Test_aBFu7ll_BFu9i_BFu9s()
{
  {
    init_simple_test("aBFu7ll_BFu9i_BFu9s");
    static STRUCT_IF_C aBFu7ll_BFu9i_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_BFu9s, aBFu7ll_BFu9i_BFu9s)
//============================================================================



static void Test_aBFu7ll_BFu9i_C()
{
  {
    init_simple_test("aBFu7ll_BFu9i_C");
    static STRUCT_IF_C aBFu7ll_BFu9i_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_C");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_C");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_C");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_C, aBFu7ll_BFu9i_C)
//============================================================================



static void Test_aBFu7ll_BFu9i_D()
{
  {
    init_simple_test("aBFu7ll_BFu9i_D");
    static STRUCT_IF_C aBFu7ll_BFu9i_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_BFu9i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_D");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_D");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_D");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_D, aBFu7ll_BFu9i_D)
//============================================================================



static void Test_aBFu7ll_BFu9i_F()
{
  {
    init_simple_test("aBFu7ll_BFu9i_F");
    static STRUCT_IF_C aBFu7ll_BFu9i_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_F");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_F");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_F");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_F, aBFu7ll_BFu9i_F)
//============================================================================



static void Test_aBFu7ll_BFu9i_I()
{
  {
    init_simple_test("aBFu7ll_BFu9i_I");
    static STRUCT_IF_C aBFu7ll_BFu9i_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_I");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_I");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_I");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_I, aBFu7ll_BFu9i_I)
//============================================================================



static void Test_aBFu7ll_BFu9i_Ip()
{
  {
    init_simple_test("aBFu7ll_BFu9i_Ip");
    static STRUCT_IF_C aBFu7ll_BFu9i_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_BFu9i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_Ip");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_Ip");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_Ip");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_Ip, aBFu7ll_BFu9i_Ip)
//============================================================================



static void Test_aBFu7ll_BFu9i_L()
{
  {
    init_simple_test("aBFu7ll_BFu9i_L");
    static STRUCT_IF_C aBFu7ll_BFu9i_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_BFu9i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_L");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_L");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_L");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_L, aBFu7ll_BFu9i_L)
//============================================================================



static void Test_aBFu7ll_BFu9i_S()
{
  {
    init_simple_test("aBFu7ll_BFu9i_S");
    static STRUCT_IF_C aBFu7ll_BFu9i_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_S");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_S");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_S");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_S, aBFu7ll_BFu9i_S)
//============================================================================



static void Test_aBFu7ll_BFu9i_Uc()
{
  {
    init_simple_test("aBFu7ll_BFu9i_Uc");
    static STRUCT_IF_C aBFu7ll_BFu9i_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_Uc");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_Uc");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_Uc");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_Uc, aBFu7ll_BFu9i_Uc)
//============================================================================



static void Test_aBFu7ll_BFu9i_Ui()
{
  {
    init_simple_test("aBFu7ll_BFu9i_Ui");
    static STRUCT_IF_C aBFu7ll_BFu9i_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_Ui");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_Ui");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_Ui");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_Ui, aBFu7ll_BFu9i_Ui)
//============================================================================



static void Test_aBFu7ll_BFu9i_Ul()
{
  {
    init_simple_test("aBFu7ll_BFu9i_Ul");
    static STRUCT_IF_C aBFu7ll_BFu9i_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_BFu9i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_Ul");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_Ul");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_Ul");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_Ul, aBFu7ll_BFu9i_Ul)
//============================================================================



static void Test_aBFu7ll_BFu9i_Us()
{
  {
    init_simple_test("aBFu7ll_BFu9i_Us");
    static STRUCT_IF_C aBFu7ll_BFu9i_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_Us");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_Us");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_Us");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_Us, aBFu7ll_BFu9i_Us)
//============================================================================



static void Test_aBFu7ll_BFu9i_Vp()
{
  {
    init_simple_test("aBFu7ll_BFu9i_Vp");
    static STRUCT_IF_C aBFu7ll_BFu9i_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_BFu9i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9i_Vp");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9i_Vp");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9i_Vp");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9i_Vp, aBFu7ll_BFu9i_Vp)
//============================================================================



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



static void Test_aBFu7ll_BFu9ll_BFu15i()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu15i");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7ll_BFu9ll_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7ll_BFu9ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu15i, aBFu7ll_BFu9ll_BFu15i)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu15ll()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu15ll");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7ll_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7ll_BFu9ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu15ll, aBFu7ll_BFu9ll_BFu15ll)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu15s()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu15s");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7ll_BFu9ll_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7ll_BFu9ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu15s, aBFu7ll_BFu9ll_BFu15s)
//============================================================================



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



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



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



static void Test_aBFu7ll_BFu9ll_BFu17i()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu17i");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_BFu9ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7ll_BFu9ll_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7ll_BFu9ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu17i, aBFu7ll_BFu9ll_BFu17i)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu17ll()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu17ll");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_BFu9ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7ll_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7ll_BFu9ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu17ll, aBFu7ll_BFu9ll_BFu17ll)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu1c()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu1c");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu1c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu1c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu1c");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_BFu9ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu1c, aBFu7ll_BFu9ll_BFu1c)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu1i()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu1i");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu1i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu1i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu1i");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_BFu9ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu1i, aBFu7ll_BFu9ll_BFu1i)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu1ll()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu1ll");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_BFu9ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu1ll, aBFu7ll_BFu9ll_BFu1ll)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu1s()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu1s");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu1s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu1s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu1s");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_BFu9ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu1s, aBFu7ll_BFu9ll_BFu1s)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu31i()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu31i");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7ll_BFu9ll_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7ll_BFu9ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu31i, aBFu7ll_BFu9ll_BFu31i)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu31ll()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu31ll");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7ll_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7ll_BFu9ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu31ll, aBFu7ll_BFu9ll_BFu31ll)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu32i()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu32i");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7ll_BFu9ll_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7ll_BFu9ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu32i, aBFu7ll_BFu9ll_BFu32i)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu32ll()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu32ll");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7ll_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7ll_BFu9ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu32ll, aBFu7ll_BFu9ll_BFu32ll)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu33()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu33");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_BFu9ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, 1, "aBFu7ll_BFu9ll_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, hide_ull(1LL<<32), "aBFu7ll_BFu9ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu33, aBFu7ll_BFu9ll_BFu33)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu7c()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu7c");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_BFu9ll_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu7c, aBFu7ll_BFu9ll_BFu7c)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu7i()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu7i");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_BFu9ll_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu7i, aBFu7ll_BFu9ll_BFu7i)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu7ll()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu7ll");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu7ll, aBFu7ll_BFu9ll_BFu7ll)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu7s()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu7s");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_BFu9ll_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu7s, aBFu7ll_BFu9ll_BFu7s)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu8c()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu8c");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_BFu9ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_BFu9ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu8c, aBFu7ll_BFu9ll_BFu8c)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu8i()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu8i");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_BFu9ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_BFu9ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu8i, aBFu7ll_BFu9ll_BFu8i)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu8ll()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu8ll");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_BFu9ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu8ll, aBFu7ll_BFu9ll_BFu8ll)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu8s()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu8s");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_BFu9ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_BFu9ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu8s, aBFu7ll_BFu9ll_BFu8s)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu9i()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu9i");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu9i, aBFu7ll_BFu9ll_BFu9i)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu9ll()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu9ll");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu9ll, aBFu7ll_BFu9ll_BFu9ll)
//============================================================================



static void Test_aBFu7ll_BFu9ll_BFu9s()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_BFu9s");
    static STRUCT_IF_C aBFu7ll_BFu9ll_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_BFu9s, aBFu7ll_BFu9ll_BFu9s)
//============================================================================



static void Test_aBFu7ll_BFu9ll_C()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_C");
    static STRUCT_IF_C aBFu7ll_BFu9ll_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_C");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_C");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_C");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_C, aBFu7ll_BFu9ll_C)
//============================================================================



static void Test_aBFu7ll_BFu9ll_D()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_D");
    static STRUCT_IF_C aBFu7ll_BFu9ll_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_BFu9ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_D");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_D");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_D");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_D, aBFu7ll_BFu9ll_D)
//============================================================================



static void Test_aBFu7ll_BFu9ll_F()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_F");
    static STRUCT_IF_C aBFu7ll_BFu9ll_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_F");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_F");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_F");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_F, aBFu7ll_BFu9ll_F)
//============================================================================



static void Test_aBFu7ll_BFu9ll_I()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_I");
    static STRUCT_IF_C aBFu7ll_BFu9ll_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_I");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_I");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_I");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_I, aBFu7ll_BFu9ll_I)
//============================================================================



static void Test_aBFu7ll_BFu9ll_Ip()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_Ip");
    static STRUCT_IF_C aBFu7ll_BFu9ll_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_BFu9ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_Ip");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_Ip");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_Ip");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_Ip, aBFu7ll_BFu9ll_Ip)
//============================================================================



static void Test_aBFu7ll_BFu9ll_L()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_L");
    static STRUCT_IF_C aBFu7ll_BFu9ll_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_BFu9ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_L");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_L");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_L");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_L, aBFu7ll_BFu9ll_L)
//============================================================================



static void Test_aBFu7ll_BFu9ll_S()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_S");
    static STRUCT_IF_C aBFu7ll_BFu9ll_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_S");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_S");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_S");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_S, aBFu7ll_BFu9ll_S)
//============================================================================



static void Test_aBFu7ll_BFu9ll_Uc()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_Uc");
    static STRUCT_IF_C aBFu7ll_BFu9ll_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_Uc");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_Uc");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_Uc");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_Uc, aBFu7ll_BFu9ll_Uc)
//============================================================================



static void Test_aBFu7ll_BFu9ll_Ui()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_Ui");
    static STRUCT_IF_C aBFu7ll_BFu9ll_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_Ui");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_Ui");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_Ui");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_Ui, aBFu7ll_BFu9ll_Ui)
//============================================================================



static void Test_aBFu7ll_BFu9ll_Ul()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_Ul");
    static STRUCT_IF_C aBFu7ll_BFu9ll_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_BFu9ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_Ul");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_Ul");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_Ul");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_Ul, aBFu7ll_BFu9ll_Ul)
//============================================================================



static void Test_aBFu7ll_BFu9ll_Us()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_Us");
    static STRUCT_IF_C aBFu7ll_BFu9ll_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_Us");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_Us");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_Us");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_Us, aBFu7ll_BFu9ll_Us)
//============================================================================



static void Test_aBFu7ll_BFu9ll_Vp()
{
  {
    init_simple_test("aBFu7ll_BFu9ll_Vp");
    static STRUCT_IF_C aBFu7ll_BFu9ll_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_BFu9ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9ll_Vp");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9ll_Vp");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9ll_Vp");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9ll_Vp, aBFu7ll_BFu9ll_Vp)
//============================================================================



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



static void Test_aBFu7ll_BFu9s_BFu15i()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu15i");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7ll_BFu9s_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7ll_BFu9s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu15i, aBFu7ll_BFu9s_BFu15i)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu15ll()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu15ll");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7ll_BFu9s_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7ll_BFu9s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu15ll, aBFu7ll_BFu9s_BFu15ll)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu15s()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu15s");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7ll_BFu9s_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7ll_BFu9s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu15s, aBFu7ll_BFu9s_BFu15s)
//============================================================================



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



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



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



static void Test_aBFu7ll_BFu9s_BFu17i()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu17i");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_BFu9s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7ll_BFu9s_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7ll_BFu9s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu17i, aBFu7ll_BFu9s_BFu17i)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu17ll()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu17ll");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_BFu9s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7ll_BFu9s_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7ll_BFu9s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu17ll, aBFu7ll_BFu9s_BFu17ll)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu1c()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu1c");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu1c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu1c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu1c");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_BFu9s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu1c, aBFu7ll_BFu9s_BFu1c)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu1i()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu1i");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu1i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu1i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu1i");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_BFu9s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu1i, aBFu7ll_BFu9s_BFu1i)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu1ll()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu1ll");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu1ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu1ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu1ll");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_BFu9s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu1ll, aBFu7ll_BFu9s_BFu1ll)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu1s()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu1s");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu1s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu1s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu1s");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_BFu9s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu1s, aBFu7ll_BFu9s_BFu1s)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu31i()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu31i");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7ll_BFu9s_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7ll_BFu9s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu31i, aBFu7ll_BFu9s_BFu31i)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu31ll()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu31ll");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7ll_BFu9s_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7ll_BFu9s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu31ll, aBFu7ll_BFu9s_BFu31ll)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu32i()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu32i");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7ll_BFu9s_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7ll_BFu9s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu32i, aBFu7ll_BFu9s_BFu32i)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu32ll()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu32ll");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7ll_BFu9s_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7ll_BFu9s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu32ll, aBFu7ll_BFu9s_BFu32ll)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu33()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu33");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_BFu9s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, 1, "aBFu7ll_BFu9s_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, hide_ull(1LL<<32), "aBFu7ll_BFu9s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu33, aBFu7ll_BFu9s_BFu33)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu7c()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu7c");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_BFu9s_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu7c, aBFu7ll_BFu9s_BFu7c)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu7i()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu7i");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_BFu9s_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu7i, aBFu7ll_BFu9s_BFu7i)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu7ll()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu7ll");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_BFu9s_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu7ll, aBFu7ll_BFu9s_BFu7ll)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu7s()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu7s");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_BFu9s_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu7s, aBFu7ll_BFu9s_BFu7s)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu8c()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu8c");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_BFu9s_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_BFu9s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu8c, aBFu7ll_BFu9s_BFu8c)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu8i()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu8i");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_BFu9s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_BFu9s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu8i, aBFu7ll_BFu9s_BFu8i)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu8ll()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu8ll");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_BFu9s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_BFu9s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu8ll, aBFu7ll_BFu9s_BFu8ll)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu8s()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu8s");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_BFu9s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_BFu9s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu8s, aBFu7ll_BFu9s_BFu8s)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu9i()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu9i");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu9i, aBFu7ll_BFu9s_BFu9i)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu9ll()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu9ll");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu9ll, aBFu7ll_BFu9s_BFu9ll)
//============================================================================



static void Test_aBFu7ll_BFu9s_BFu9s()
{
  {
    init_simple_test("aBFu7ll_BFu9s_BFu9s");
    static STRUCT_IF_C aBFu7ll_BFu9s_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_BFu9s, aBFu7ll_BFu9s_BFu9s)
//============================================================================



static void Test_aBFu7ll_BFu9s_C()
{
  {
    init_simple_test("aBFu7ll_BFu9s_C");
    static STRUCT_IF_C aBFu7ll_BFu9s_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_C");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_C");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_C");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_C, aBFu7ll_BFu9s_C)
//============================================================================



static void Test_aBFu7ll_BFu9s_D()
{
  {
    init_simple_test("aBFu7ll_BFu9s_D");
    static STRUCT_IF_C aBFu7ll_BFu9s_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_BFu9s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_D");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_D");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_D");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_D, aBFu7ll_BFu9s_D)
//============================================================================



static void Test_aBFu7ll_BFu9s_F()
{
  {
    init_simple_test("aBFu7ll_BFu9s_F");
    static STRUCT_IF_C aBFu7ll_BFu9s_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_F");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_F");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_F");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_F, aBFu7ll_BFu9s_F)
//============================================================================



static void Test_aBFu7ll_BFu9s_I()
{
  {
    init_simple_test("aBFu7ll_BFu9s_I");
    static STRUCT_IF_C aBFu7ll_BFu9s_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_I");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_I");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_I");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_I, aBFu7ll_BFu9s_I)
//============================================================================



static void Test_aBFu7ll_BFu9s_Ip()
{
  {
    init_simple_test("aBFu7ll_BFu9s_Ip");
    static STRUCT_IF_C aBFu7ll_BFu9s_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_BFu9s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_Ip");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_Ip");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_Ip");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_Ip, aBFu7ll_BFu9s_Ip)
//============================================================================



static void Test_aBFu7ll_BFu9s_L()
{
  {
    init_simple_test("aBFu7ll_BFu9s_L");
    static STRUCT_IF_C aBFu7ll_BFu9s_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_BFu9s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_L");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_L");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_L");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_L, aBFu7ll_BFu9s_L)
//============================================================================



static void Test_aBFu7ll_BFu9s_S()
{
  {
    init_simple_test("aBFu7ll_BFu9s_S");
    static STRUCT_IF_C aBFu7ll_BFu9s_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_S");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_S");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_S");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_S, aBFu7ll_BFu9s_S)
//============================================================================



static void Test_aBFu7ll_BFu9s_Uc()
{
  {
    init_simple_test("aBFu7ll_BFu9s_Uc");
    static STRUCT_IF_C aBFu7ll_BFu9s_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_BFu9s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_Uc");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_Uc");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_Uc");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_Uc, aBFu7ll_BFu9s_Uc)
//============================================================================



static void Test_aBFu7ll_BFu9s_Ui()
{
  {
    init_simple_test("aBFu7ll_BFu9s_Ui");
    static STRUCT_IF_C aBFu7ll_BFu9s_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_BFu9s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_Ui");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_Ui");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_Ui");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_Ui, aBFu7ll_BFu9s_Ui)
//============================================================================



static void Test_aBFu7ll_BFu9s_Ul()
{
  {
    init_simple_test("aBFu7ll_BFu9s_Ul");
    static STRUCT_IF_C aBFu7ll_BFu9s_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_BFu9s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_Ul");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_Ul");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_Ul");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_Ul, aBFu7ll_BFu9s_Ul)
//============================================================================



static void Test_aBFu7ll_BFu9s_Us()
{
  {
    init_simple_test("aBFu7ll_BFu9s_Us");
    static STRUCT_IF_C aBFu7ll_BFu9s_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_BFu9s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_Us");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_Us");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_Us");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_Us, aBFu7ll_BFu9s_Us)
//============================================================================



static void Test_aBFu7ll_BFu9s_Vp()
{
  {
    init_simple_test("aBFu7ll_BFu9s_Vp");
    static STRUCT_IF_C aBFu7ll_BFu9s_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_BFu9s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_BFu9s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_BFu9s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_BFu9s_Vp");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7ll_BFu9s_Vp");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7ll_BFu9s_Vp");
    check_field_offset(lv, v3, 2, "aBFu7ll_BFu9s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_BFu9s_Vp, aBFu7ll_BFu9s_Vp)
//============================================================================



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



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



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



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



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



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



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



static void Test_aBFu7ll_C_BFu17i()
{
  {
    init_simple_test("aBFu7ll_C_BFu17i");
    static STRUCT_IF_C aBFu7ll_C_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_C_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu17i.v2");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7ll_C_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7ll_C_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu17i, aBFu7ll_C_BFu17i)
//============================================================================



static void Test_aBFu7ll_C_BFu17ll()
{
  {
    init_simple_test("aBFu7ll_C_BFu17ll");
    static STRUCT_IF_C aBFu7ll_C_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_C_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu17ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7ll_C_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7ll_C_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu17ll, aBFu7ll_C_BFu17ll)
//============================================================================



static void Test_aBFu7ll_C_BFu1c()
{
  {
    init_simple_test("aBFu7ll_C_BFu1c");
    static STRUCT_IF_C aBFu7ll_C_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_C_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu1c.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_C_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu1c, aBFu7ll_C_BFu1c)
//============================================================================



static void Test_aBFu7ll_C_BFu1i()
{
  {
    init_simple_test("aBFu7ll_C_BFu1i");
    static STRUCT_IF_C aBFu7ll_C_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_C_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu1i.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_C_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu1i, aBFu7ll_C_BFu1i)
//============================================================================



static void Test_aBFu7ll_C_BFu1ll()
{
  {
    init_simple_test("aBFu7ll_C_BFu1ll");
    static STRUCT_IF_C aBFu7ll_C_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_C_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu1ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_C_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu1ll, aBFu7ll_C_BFu1ll)
//============================================================================



static void Test_aBFu7ll_C_BFu1s()
{
  {
    init_simple_test("aBFu7ll_C_BFu1s");
    static STRUCT_IF_C aBFu7ll_C_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_C_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu1s.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_C_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu1s, aBFu7ll_C_BFu1s)
//============================================================================



static void Test_aBFu7ll_C_BFu31i()
{
  {
    init_simple_test("aBFu7ll_C_BFu31i");
    static STRUCT_IF_C aBFu7ll_C_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_C_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu31i.v2");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7ll_C_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7ll_C_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu31i, aBFu7ll_C_BFu31i)
//============================================================================



static void Test_aBFu7ll_C_BFu31ll()
{
  {
    init_simple_test("aBFu7ll_C_BFu31ll");
    static STRUCT_IF_C aBFu7ll_C_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_C_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu31ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7ll_C_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7ll_C_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu31ll, aBFu7ll_C_BFu31ll)
//============================================================================



static void Test_aBFu7ll_C_BFu32i()
{
  {
    init_simple_test("aBFu7ll_C_BFu32i");
    static STRUCT_IF_C aBFu7ll_C_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_C_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu32i.v2");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7ll_C_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7ll_C_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu32i, aBFu7ll_C_BFu32i)
//============================================================================



static void Test_aBFu7ll_C_BFu32ll()
{
  {
    init_simple_test("aBFu7ll_C_BFu32ll");
    static STRUCT_IF_C aBFu7ll_C_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_C_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu32ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7ll_C_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7ll_C_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu32ll, aBFu7ll_C_BFu32ll)
//============================================================================



static void Test_aBFu7ll_C_BFu33()
{
  {
    init_simple_test("aBFu7ll_C_BFu33");
    static STRUCT_IF_C aBFu7ll_C_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_C_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu33.v2");
    set_bf_and_test(lv, v3, 2, 0, 33, 1, "aBFu7ll_C_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, hide_ull(1LL<<32), "aBFu7ll_C_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu33, aBFu7ll_C_BFu33)
//============================================================================



static void Test_aBFu7ll_C_BFu7c()
{
  {
    init_simple_test("aBFu7ll_C_BFu7c");
    static STRUCT_IF_C aBFu7ll_C_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_C_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu7c.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_C_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu7c, aBFu7ll_C_BFu7c)
//============================================================================



static void Test_aBFu7ll_C_BFu7i()
{
  {
    init_simple_test("aBFu7ll_C_BFu7i");
    static STRUCT_IF_C aBFu7ll_C_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_C_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu7i.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_C_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu7i, aBFu7ll_C_BFu7i)
//============================================================================



static void Test_aBFu7ll_C_BFu7ll()
{
  {
    init_simple_test("aBFu7ll_C_BFu7ll");
    static STRUCT_IF_C aBFu7ll_C_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_C_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu7ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_C_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu7ll, aBFu7ll_C_BFu7ll)
//============================================================================



static void Test_aBFu7ll_C_BFu7s()
{
  {
    init_simple_test("aBFu7ll_C_BFu7s");
    static STRUCT_IF_C aBFu7ll_C_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_C_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu7s.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_C_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu7s, aBFu7ll_C_BFu7s)
//============================================================================



static void Test_aBFu7ll_C_BFu8c()
{
  {
    init_simple_test("aBFu7ll_C_BFu8c");
    static STRUCT_IF_C aBFu7ll_C_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_C_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu8c.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_C_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_C_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu8c, aBFu7ll_C_BFu8c)
//============================================================================



static void Test_aBFu7ll_C_BFu8i()
{
  {
    init_simple_test("aBFu7ll_C_BFu8i");
    static STRUCT_IF_C aBFu7ll_C_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_C_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu8i.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_C_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_C_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu8i, aBFu7ll_C_BFu8i)
//============================================================================



static void Test_aBFu7ll_C_BFu8ll()
{
  {
    init_simple_test("aBFu7ll_C_BFu8ll");
    static STRUCT_IF_C aBFu7ll_C_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_C_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu8ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_C_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_C_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu8ll, aBFu7ll_C_BFu8ll)
//============================================================================



static void Test_aBFu7ll_C_BFu8s()
{
  {
    init_simple_test("aBFu7ll_C_BFu8s");
    static STRUCT_IF_C aBFu7ll_C_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_C_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu8s.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_C_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_C_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu8s, aBFu7ll_C_BFu8s)
//============================================================================



static void Test_aBFu7ll_C_BFu9i()
{
  {
    init_simple_test("aBFu7ll_C_BFu9i");
    static STRUCT_IF_C aBFu7ll_C_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_C_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu9i.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7ll_C_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7ll_C_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu9i, aBFu7ll_C_BFu9i)
//============================================================================



static void Test_aBFu7ll_C_BFu9ll()
{
  {
    init_simple_test("aBFu7ll_C_BFu9ll");
    static STRUCT_IF_C aBFu7ll_C_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_C_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu9ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7ll_C_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7ll_C_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu9ll, aBFu7ll_C_BFu9ll)
//============================================================================



static void Test_aBFu7ll_C_BFu9s()
{
  {
    init_simple_test("aBFu7ll_C_BFu9s");
    static STRUCT_IF_C aBFu7ll_C_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_C_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_BFu9s.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7ll_C_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7ll_C_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_BFu9s, aBFu7ll_C_BFu9s)
//============================================================================



static void Test_aBFu7ll_C_C()
{
  {
    init_simple_test("aBFu7ll_C_C");
    static STRUCT_IF_C aBFu7ll_C_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_C_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_C");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_C.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_C_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_C, aBFu7ll_C_C)
//============================================================================



static void Test_aBFu7ll_C_D()
{
  {
    init_simple_test("aBFu7ll_C_D");
    static STRUCT_IF_C aBFu7ll_C_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_C_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_D");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_D.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_C_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_D, aBFu7ll_C_D)
//============================================================================



static void Test_aBFu7ll_C_F()
{
  {
    init_simple_test("aBFu7ll_C_F");
    static STRUCT_IF_C aBFu7ll_C_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_C_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_F");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_F.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_C_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_F, aBFu7ll_C_F)
//============================================================================



static void Test_aBFu7ll_C_I()
{
  {
    init_simple_test("aBFu7ll_C_I");
    static STRUCT_IF_C aBFu7ll_C_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_C_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_I");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_I.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_C_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_I, aBFu7ll_C_I)
//============================================================================



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



static void Test_aBFu7ll_C_L()
{
  {
    init_simple_test("aBFu7ll_C_L");
    static STRUCT_IF_C aBFu7ll_C_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_C_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_L");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_L.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_C_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_L, aBFu7ll_C_L)
//============================================================================



static void Test_aBFu7ll_C_S()
{
  {
    init_simple_test("aBFu7ll_C_S");
    static STRUCT_IF_C aBFu7ll_C_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_C_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_S");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_S.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_C_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_S, aBFu7ll_C_S)
//============================================================================



static void Test_aBFu7ll_C_Uc()
{
  {
    init_simple_test("aBFu7ll_C_Uc");
    static STRUCT_IF_C aBFu7ll_C_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_C_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_Uc");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_Uc.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_C_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_Uc, aBFu7ll_C_Uc)
//============================================================================



static void Test_aBFu7ll_C_Ui()
{
  {
    init_simple_test("aBFu7ll_C_Ui");
    static STRUCT_IF_C aBFu7ll_C_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_C_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_Ui");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_Ui.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_C_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_Ui, aBFu7ll_C_Ui)
//============================================================================



static void Test_aBFu7ll_C_Ul()
{
  {
    init_simple_test("aBFu7ll_C_Ul");
    static STRUCT_IF_C aBFu7ll_C_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_C_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_Ul");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_Ul.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_C_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_Ul, aBFu7ll_C_Ul)
//============================================================================



static void Test_aBFu7ll_C_Us()
{
  {
    init_simple_test("aBFu7ll_C_Us");
    static STRUCT_IF_C aBFu7ll_C_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_C_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_C_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_C_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_C_Us");
    check_field_offset(lv, v2, 1, "aBFu7ll_C_Us.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_C_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_C_Us, aBFu7ll_C_Us)
//============================================================================



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



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



static void Test_aBFu7ll_D_BFu15i()
{
  {
    init_simple_test("aBFu7ll_D_BFu15i");
    static STRUCT_IF_C aBFu7ll_D_BFu15i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_D_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu15i.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7ll_D_BFu15i");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7ll_D_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu15i, aBFu7ll_D_BFu15i)
//============================================================================



static void Test_aBFu7ll_D_BFu15ll()
{
  {
    init_simple_test("aBFu7ll_D_BFu15ll");
    static STRUCT_IF_C aBFu7ll_D_BFu15ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_D_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu15ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7ll_D_BFu15ll");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7ll_D_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu15ll, aBFu7ll_D_BFu15ll)
//============================================================================



static void Test_aBFu7ll_D_BFu15s()
{
  {
    init_simple_test("aBFu7ll_D_BFu15s");
    static STRUCT_IF_C aBFu7ll_D_BFu15s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_D_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu15s.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7ll_D_BFu15s");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7ll_D_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu15s, aBFu7ll_D_BFu15s)
//============================================================================



static void Test_aBFu7ll_D_BFu16i()
{
  {
    init_simple_test("aBFu7ll_D_BFu16i");
    static STRUCT_IF_C aBFu7ll_D_BFu16i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_D_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu16i.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7ll_D_BFu16i");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7ll_D_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu16i, aBFu7ll_D_BFu16i)
//============================================================================



static void Test_aBFu7ll_D_BFu16ll()
{
  {
    init_simple_test("aBFu7ll_D_BFu16ll");
    static STRUCT_IF_C aBFu7ll_D_BFu16ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_D_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu16ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7ll_D_BFu16ll");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7ll_D_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu16ll, aBFu7ll_D_BFu16ll)
//============================================================================



static void Test_aBFu7ll_D_BFu16s()
{
  {
    init_simple_test("aBFu7ll_D_BFu16s");
    static STRUCT_IF_C aBFu7ll_D_BFu16s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_D_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu16s.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7ll_D_BFu16s");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7ll_D_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu16s, aBFu7ll_D_BFu16s)
//============================================================================



static void Test_aBFu7ll_D_BFu17i()
{
  {
    init_simple_test("aBFu7ll_D_BFu17i");
    static STRUCT_IF_C aBFu7ll_D_BFu17i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu7ll_D_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu17i.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu7ll_D_BFu17i");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu7ll_D_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu17i, aBFu7ll_D_BFu17i)
//============================================================================



static void Test_aBFu7ll_D_BFu17ll()
{
  {
    init_simple_test("aBFu7ll_D_BFu17ll");
    static STRUCT_IF_C aBFu7ll_D_BFu17ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu7ll_D_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu17ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu7ll_D_BFu17ll");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu7ll_D_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu17ll, aBFu7ll_D_BFu17ll)
//============================================================================



static void Test_aBFu7ll_D_BFu1c()
{
  {
    init_simple_test("aBFu7ll_D_BFu1c");
    static STRUCT_IF_C aBFu7ll_D_BFu1c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_D_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu1c.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7ll_D_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu1c, aBFu7ll_D_BFu1c)
//============================================================================



static void Test_aBFu7ll_D_BFu1i()
{
  {
    init_simple_test("aBFu7ll_D_BFu1i");
    static STRUCT_IF_C aBFu7ll_D_BFu1i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_D_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu1i.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7ll_D_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu1i, aBFu7ll_D_BFu1i)
//============================================================================



static void Test_aBFu7ll_D_BFu1ll()
{
  {
    init_simple_test("aBFu7ll_D_BFu1ll");
    static STRUCT_IF_C aBFu7ll_D_BFu1ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_D_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu1ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7ll_D_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu1ll, aBFu7ll_D_BFu1ll)
//============================================================================



static void Test_aBFu7ll_D_BFu1s()
{
  {
    init_simple_test("aBFu7ll_D_BFu1s");
    static STRUCT_IF_C aBFu7ll_D_BFu1s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_D_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu1s.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7ll_D_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu1s, aBFu7ll_D_BFu1s)
//============================================================================



static void Test_aBFu7ll_D_BFu31i()
{
  {
    init_simple_test("aBFu7ll_D_BFu31i");
    static STRUCT_IF_C aBFu7ll_D_BFu31i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_D_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu31i.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu7ll_D_BFu31i");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu7ll_D_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu31i, aBFu7ll_D_BFu31i)
//============================================================================



static void Test_aBFu7ll_D_BFu31ll()
{
  {
    init_simple_test("aBFu7ll_D_BFu31ll");
    static STRUCT_IF_C aBFu7ll_D_BFu31ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_D_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu31ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu7ll_D_BFu31ll");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu7ll_D_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu31ll, aBFu7ll_D_BFu31ll)
//============================================================================



static void Test_aBFu7ll_D_BFu32i()
{
  {
    init_simple_test("aBFu7ll_D_BFu32i");
    static STRUCT_IF_C aBFu7ll_D_BFu32i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_D_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu32i.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu7ll_D_BFu32i");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu7ll_D_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu32i, aBFu7ll_D_BFu32i)
//============================================================================



static void Test_aBFu7ll_D_BFu32ll()
{
  {
    init_simple_test("aBFu7ll_D_BFu32ll");
    static STRUCT_IF_C aBFu7ll_D_BFu32ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_D_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu32ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu7ll_D_BFu32ll");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu7ll_D_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu32ll, aBFu7ll_D_BFu32ll)
//============================================================================



static void Test_aBFu7ll_D_BFu33()
{
  {
    init_simple_test("aBFu7ll_D_BFu33");
    static STRUCT_IF_C aBFu7ll_D_BFu33 lv;
    check2(sizeof(lv), 14, "sizeof(aBFu7ll_D_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu33.v2");
    set_bf_and_test(lv, v3, 9, 0, 33, 1, "aBFu7ll_D_BFu33");
    set_bf_and_test(lv, v3, 9, 0, 33, hide_ull(1LL<<32), "aBFu7ll_D_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu33, aBFu7ll_D_BFu33)
//============================================================================



static void Test_aBFu7ll_D_BFu7c()
{
  {
    init_simple_test("aBFu7ll_D_BFu7c");
    static STRUCT_IF_C aBFu7ll_D_BFu7c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_D_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu7c.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7ll_D_BFu7c");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu7c, aBFu7ll_D_BFu7c)
//============================================================================



static void Test_aBFu7ll_D_BFu7i()
{
  {
    init_simple_test("aBFu7ll_D_BFu7i");
    static STRUCT_IF_C aBFu7ll_D_BFu7i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_D_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu7i.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7ll_D_BFu7i");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu7i, aBFu7ll_D_BFu7i)
//============================================================================



static void Test_aBFu7ll_D_BFu7ll()
{
  {
    init_simple_test("aBFu7ll_D_BFu7ll");
    static STRUCT_IF_C aBFu7ll_D_BFu7ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_D_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu7ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7ll_D_BFu7ll");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu7ll, aBFu7ll_D_BFu7ll)
//============================================================================



static void Test_aBFu7ll_D_BFu7s()
{
  {
    init_simple_test("aBFu7ll_D_BFu7s");
    static STRUCT_IF_C aBFu7ll_D_BFu7s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_D_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu7s.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7ll_D_BFu7s");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu7s, aBFu7ll_D_BFu7s)
//============================================================================



static void Test_aBFu7ll_D_BFu8c()
{
  {
    init_simple_test("aBFu7ll_D_BFu8c");
    static STRUCT_IF_C aBFu7ll_D_BFu8c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_D_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu8c.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7ll_D_BFu8c");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7ll_D_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu8c, aBFu7ll_D_BFu8c)
//============================================================================



static void Test_aBFu7ll_D_BFu8i()
{
  {
    init_simple_test("aBFu7ll_D_BFu8i");
    static STRUCT_IF_C aBFu7ll_D_BFu8i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_D_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu8i.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7ll_D_BFu8i");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7ll_D_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu8i, aBFu7ll_D_BFu8i)
//============================================================================



static void Test_aBFu7ll_D_BFu8ll()
{
  {
    init_simple_test("aBFu7ll_D_BFu8ll");
    static STRUCT_IF_C aBFu7ll_D_BFu8ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_D_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu8ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7ll_D_BFu8ll");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7ll_D_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu8ll, aBFu7ll_D_BFu8ll)
//============================================================================



static void Test_aBFu7ll_D_BFu8s()
{
  {
    init_simple_test("aBFu7ll_D_BFu8s");
    static STRUCT_IF_C aBFu7ll_D_BFu8s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_D_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu8s.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7ll_D_BFu8s");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7ll_D_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu8s, aBFu7ll_D_BFu8s)
//============================================================================



static void Test_aBFu7ll_D_BFu9i()
{
  {
    init_simple_test("aBFu7ll_D_BFu9i");
    static STRUCT_IF_C aBFu7ll_D_BFu9i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_D_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu9i.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7ll_D_BFu9i");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7ll_D_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu9i, aBFu7ll_D_BFu9i)
//============================================================================



static void Test_aBFu7ll_D_BFu9ll()
{
  {
    init_simple_test("aBFu7ll_D_BFu9ll");
    static STRUCT_IF_C aBFu7ll_D_BFu9ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_D_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu9ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7ll_D_BFu9ll");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7ll_D_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu9ll, aBFu7ll_D_BFu9ll)
//============================================================================



static void Test_aBFu7ll_D_BFu9s()
{
  {
    init_simple_test("aBFu7ll_D_BFu9s");
    static STRUCT_IF_C aBFu7ll_D_BFu9s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_D_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_BFu9s.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7ll_D_BFu9s");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7ll_D_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_BFu9s, aBFu7ll_D_BFu9s)
//============================================================================



static void Test_aBFu7ll_D_C()
{
  {
    init_simple_test("aBFu7ll_D_C");
    static STRUCT_IF_C aBFu7ll_D_C lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_D_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_C");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_C.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_D_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_C, aBFu7ll_D_C)
//============================================================================



static void Test_aBFu7ll_D_D()
{
  {
    init_simple_test("aBFu7ll_D_D");
    static STRUCT_IF_C aBFu7ll_D_D lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7ll_D_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_D");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_D.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_D_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_D, aBFu7ll_D_D)
//============================================================================



static void Test_aBFu7ll_D_F()
{
  {
    init_simple_test("aBFu7ll_D_F");
    static STRUCT_IF_C aBFu7ll_D_F lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_D_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_F");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_F.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_D_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_F, aBFu7ll_D_F)
//============================================================================



static void Test_aBFu7ll_D_I()
{
  {
    init_simple_test("aBFu7ll_D_I");
    static STRUCT_IF_C aBFu7ll_D_I lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_D_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_I");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_I.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_D_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_I, aBFu7ll_D_I)
//============================================================================



static void Test_aBFu7ll_D_Ip()
{
  {
    init_simple_test("aBFu7ll_D_Ip");
    static STRUCT_IF_C aBFu7ll_D_Ip lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7ll_D_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_Ip");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_Ip.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_D_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_Ip, aBFu7ll_D_Ip)
//============================================================================



static void Test_aBFu7ll_D_L()
{
  {
    init_simple_test("aBFu7ll_D_L");
    static STRUCT_IF_C aBFu7ll_D_L lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7ll_D_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_L");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_L.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_D_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_L, aBFu7ll_D_L)
//============================================================================



static void Test_aBFu7ll_D_S()
{
  {
    init_simple_test("aBFu7ll_D_S");
    static STRUCT_IF_C aBFu7ll_D_S lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_D_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_S");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_S.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_D_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_S, aBFu7ll_D_S)
//============================================================================



static void Test_aBFu7ll_D_Uc()
{
  {
    init_simple_test("aBFu7ll_D_Uc");
    static STRUCT_IF_C aBFu7ll_D_Uc lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_D_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_Uc");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_Uc.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_D_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_Uc, aBFu7ll_D_Uc)
//============================================================================



static void Test_aBFu7ll_D_Ui()
{
  {
    init_simple_test("aBFu7ll_D_Ui");
    static STRUCT_IF_C aBFu7ll_D_Ui lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_D_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_Ui");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_Ui.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_D_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_Ui, aBFu7ll_D_Ui)
//============================================================================



static void Test_aBFu7ll_D_Ul()
{
  {
    init_simple_test("aBFu7ll_D_Ul");
    static STRUCT_IF_C aBFu7ll_D_Ul lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7ll_D_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_Ul");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_Ul.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_D_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_Ul, aBFu7ll_D_Ul)
//============================================================================



static void Test_aBFu7ll_D_Us()
{
  {
    init_simple_test("aBFu7ll_D_Us");
    static STRUCT_IF_C aBFu7ll_D_Us lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_D_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_Us");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_Us.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_D_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_Us, aBFu7ll_D_Us)
//============================================================================



static void Test_aBFu7ll_D_Vp()
{
  {
    init_simple_test("aBFu7ll_D_Vp");
    static STRUCT_IF_C aBFu7ll_D_Vp lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7ll_D_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_D_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_D_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_D_Vp");
    check_field_offset(lv, v2, 1, "aBFu7ll_D_Vp.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_D_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_D_Vp, aBFu7ll_D_Vp)
//============================================================================



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



static void Test_aBFu7ll_F_BFu15i()
{
  {
    init_simple_test("aBFu7ll_F_BFu15i");
    static STRUCT_IF_C aBFu7ll_F_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_F_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu15i.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7ll_F_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7ll_F_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu15i, aBFu7ll_F_BFu15i)
//============================================================================



static void Test_aBFu7ll_F_BFu15ll()
{
  {
    init_simple_test("aBFu7ll_F_BFu15ll");
    static STRUCT_IF_C aBFu7ll_F_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_F_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu15ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7ll_F_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7ll_F_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu15ll, aBFu7ll_F_BFu15ll)
//============================================================================



static void Test_aBFu7ll_F_BFu15s()
{
  {
    init_simple_test("aBFu7ll_F_BFu15s");
    static STRUCT_IF_C aBFu7ll_F_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_F_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu15s.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7ll_F_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7ll_F_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu15s, aBFu7ll_F_BFu15s)
//============================================================================



static void Test_aBFu7ll_F_BFu16i()
{
  {
    init_simple_test("aBFu7ll_F_BFu16i");
    static STRUCT_IF_C aBFu7ll_F_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_F_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu16i.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7ll_F_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7ll_F_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu16i, aBFu7ll_F_BFu16i)
//============================================================================



static void Test_aBFu7ll_F_BFu16ll()
{
  {
    init_simple_test("aBFu7ll_F_BFu16ll");
    static STRUCT_IF_C aBFu7ll_F_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_F_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu16ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7ll_F_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7ll_F_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu16ll, aBFu7ll_F_BFu16ll)
//============================================================================



static void Test_aBFu7ll_F_BFu16s()
{
  {
    init_simple_test("aBFu7ll_F_BFu16s");
    static STRUCT_IF_C aBFu7ll_F_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_F_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu16s.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7ll_F_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7ll_F_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu16s, aBFu7ll_F_BFu16s)
//============================================================================



static void Test_aBFu7ll_F_BFu17i()
{
  {
    init_simple_test("aBFu7ll_F_BFu17i");
    static STRUCT_IF_C aBFu7ll_F_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7ll_F_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu17i.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu7ll_F_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu7ll_F_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu17i, aBFu7ll_F_BFu17i)
//============================================================================



static void Test_aBFu7ll_F_BFu17ll()
{
  {
    init_simple_test("aBFu7ll_F_BFu17ll");
    static STRUCT_IF_C aBFu7ll_F_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7ll_F_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu17ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu7ll_F_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu7ll_F_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu17ll, aBFu7ll_F_BFu17ll)
//============================================================================



static void Test_aBFu7ll_F_BFu1c()
{
  {
    init_simple_test("aBFu7ll_F_BFu1c");
    static STRUCT_IF_C aBFu7ll_F_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_F_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu1c.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7ll_F_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu1c, aBFu7ll_F_BFu1c)
//============================================================================



static void Test_aBFu7ll_F_BFu1i()
{
  {
    init_simple_test("aBFu7ll_F_BFu1i");
    static STRUCT_IF_C aBFu7ll_F_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_F_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu1i.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7ll_F_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu1i, aBFu7ll_F_BFu1i)
//============================================================================



static void Test_aBFu7ll_F_BFu1ll()
{
  {
    init_simple_test("aBFu7ll_F_BFu1ll");
    static STRUCT_IF_C aBFu7ll_F_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_F_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu1ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7ll_F_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu1ll, aBFu7ll_F_BFu1ll)
//============================================================================



static void Test_aBFu7ll_F_BFu1s()
{
  {
    init_simple_test("aBFu7ll_F_BFu1s");
    static STRUCT_IF_C aBFu7ll_F_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_F_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu1s.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7ll_F_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu1s, aBFu7ll_F_BFu1s)
//============================================================================



static void Test_aBFu7ll_F_BFu31i()
{
  {
    init_simple_test("aBFu7ll_F_BFu31i");
    static STRUCT_IF_C aBFu7ll_F_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_F_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu31i.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu7ll_F_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu7ll_F_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu31i, aBFu7ll_F_BFu31i)
//============================================================================



static void Test_aBFu7ll_F_BFu31ll()
{
  {
    init_simple_test("aBFu7ll_F_BFu31ll");
    static STRUCT_IF_C aBFu7ll_F_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_F_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu31ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu7ll_F_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu7ll_F_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu31ll, aBFu7ll_F_BFu31ll)
//============================================================================



static void Test_aBFu7ll_F_BFu32i()
{
  {
    init_simple_test("aBFu7ll_F_BFu32i");
    static STRUCT_IF_C aBFu7ll_F_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_F_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu32i.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu7ll_F_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu7ll_F_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu32i, aBFu7ll_F_BFu32i)
//============================================================================



static void Test_aBFu7ll_F_BFu32ll()
{
  {
    init_simple_test("aBFu7ll_F_BFu32ll");
    static STRUCT_IF_C aBFu7ll_F_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_F_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu32ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu7ll_F_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu7ll_F_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu32ll, aBFu7ll_F_BFu32ll)
//============================================================================



static void Test_aBFu7ll_F_BFu33()
{
  {
    init_simple_test("aBFu7ll_F_BFu33");
    static STRUCT_IF_C aBFu7ll_F_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_F_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu33.v2");
    set_bf_and_test(lv, v3, 5, 0, 33, 1, "aBFu7ll_F_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, hide_ull(1LL<<32), "aBFu7ll_F_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu33, aBFu7ll_F_BFu33)
//============================================================================



static void Test_aBFu7ll_F_BFu7c()
{
  {
    init_simple_test("aBFu7ll_F_BFu7c");
    static STRUCT_IF_C aBFu7ll_F_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_F_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu7c.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7ll_F_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu7c, aBFu7ll_F_BFu7c)
//============================================================================



static void Test_aBFu7ll_F_BFu7i()
{
  {
    init_simple_test("aBFu7ll_F_BFu7i");
    static STRUCT_IF_C aBFu7ll_F_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_F_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu7i.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7ll_F_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu7i, aBFu7ll_F_BFu7i)
//============================================================================



static void Test_aBFu7ll_F_BFu7ll()
{
  {
    init_simple_test("aBFu7ll_F_BFu7ll");
    static STRUCT_IF_C aBFu7ll_F_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_F_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu7ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7ll_F_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu7ll, aBFu7ll_F_BFu7ll)
//============================================================================



static void Test_aBFu7ll_F_BFu7s()
{
  {
    init_simple_test("aBFu7ll_F_BFu7s");
    static STRUCT_IF_C aBFu7ll_F_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_F_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu7s.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7ll_F_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu7s, aBFu7ll_F_BFu7s)
//============================================================================



static void Test_aBFu7ll_F_BFu8c()
{
  {
    init_simple_test("aBFu7ll_F_BFu8c");
    static STRUCT_IF_C aBFu7ll_F_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_F_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu8c.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7ll_F_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7ll_F_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu8c, aBFu7ll_F_BFu8c)
//============================================================================



static void Test_aBFu7ll_F_BFu8i()
{
  {
    init_simple_test("aBFu7ll_F_BFu8i");
    static STRUCT_IF_C aBFu7ll_F_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_F_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu8i.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7ll_F_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7ll_F_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu8i, aBFu7ll_F_BFu8i)
//============================================================================



static void Test_aBFu7ll_F_BFu8ll()
{
  {
    init_simple_test("aBFu7ll_F_BFu8ll");
    static STRUCT_IF_C aBFu7ll_F_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_F_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu8ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7ll_F_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7ll_F_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu8ll, aBFu7ll_F_BFu8ll)
//============================================================================



static void Test_aBFu7ll_F_BFu8s()
{
  {
    init_simple_test("aBFu7ll_F_BFu8s");
    static STRUCT_IF_C aBFu7ll_F_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_F_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu8s.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7ll_F_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7ll_F_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu8s, aBFu7ll_F_BFu8s)
//============================================================================



static void Test_aBFu7ll_F_BFu9i()
{
  {
    init_simple_test("aBFu7ll_F_BFu9i");
    static STRUCT_IF_C aBFu7ll_F_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_F_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu9i.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7ll_F_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7ll_F_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu9i, aBFu7ll_F_BFu9i)
//============================================================================



static void Test_aBFu7ll_F_BFu9ll()
{
  {
    init_simple_test("aBFu7ll_F_BFu9ll");
    static STRUCT_IF_C aBFu7ll_F_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_F_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu9ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7ll_F_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7ll_F_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu9ll, aBFu7ll_F_BFu9ll)
//============================================================================



static void Test_aBFu7ll_F_BFu9s()
{
  {
    init_simple_test("aBFu7ll_F_BFu9s");
    static STRUCT_IF_C aBFu7ll_F_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_F_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_BFu9s.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7ll_F_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7ll_F_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_BFu9s, aBFu7ll_F_BFu9s)
//============================================================================



static void Test_aBFu7ll_F_C()
{
  {
    init_simple_test("aBFu7ll_F_C");
    static STRUCT_IF_C aBFu7ll_F_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_F_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_C");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_C.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_F_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_C, aBFu7ll_F_C)
//============================================================================



static void Test_aBFu7ll_F_D()
{
  {
    init_simple_test("aBFu7ll_F_D");
    static STRUCT_IF_C aBFu7ll_F_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_F_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_D");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_D.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_F_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_D, aBFu7ll_F_D)
//============================================================================



static void Test_aBFu7ll_F_F()
{
  {
    init_simple_test("aBFu7ll_F_F");
    static STRUCT_IF_C aBFu7ll_F_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_F_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_F");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_F.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_F_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_F, aBFu7ll_F_F)
//============================================================================



static void Test_aBFu7ll_F_I()
{
  {
    init_simple_test("aBFu7ll_F_I");
    static STRUCT_IF_C aBFu7ll_F_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_F_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_I");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_I.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_F_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_I, aBFu7ll_F_I)
//============================================================================



static void Test_aBFu7ll_F_Ip()
{
  {
    init_simple_test("aBFu7ll_F_Ip");
    static STRUCT_IF_C aBFu7ll_F_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_F_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_Ip");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_Ip.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_F_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_Ip, aBFu7ll_F_Ip)
//============================================================================



static void Test_aBFu7ll_F_L()
{
  {
    init_simple_test("aBFu7ll_F_L");
    static STRUCT_IF_C aBFu7ll_F_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_F_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_L");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_L.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_F_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_L, aBFu7ll_F_L)
//============================================================================



static void Test_aBFu7ll_F_S()
{
  {
    init_simple_test("aBFu7ll_F_S");
    static STRUCT_IF_C aBFu7ll_F_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_F_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_S");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_S.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_F_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_S, aBFu7ll_F_S)
//============================================================================



static void Test_aBFu7ll_F_Uc()
{
  {
    init_simple_test("aBFu7ll_F_Uc");
    static STRUCT_IF_C aBFu7ll_F_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_F_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_Uc");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_Uc.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_F_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_Uc, aBFu7ll_F_Uc)
//============================================================================



static void Test_aBFu7ll_F_Ui()
{
  {
    init_simple_test("aBFu7ll_F_Ui");
    static STRUCT_IF_C aBFu7ll_F_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_F_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_Ui");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_Ui.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_F_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_Ui, aBFu7ll_F_Ui)
//============================================================================



static void Test_aBFu7ll_F_Ul()
{
  {
    init_simple_test("aBFu7ll_F_Ul");
    static STRUCT_IF_C aBFu7ll_F_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_F_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_Ul");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_Ul.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_F_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_Ul, aBFu7ll_F_Ul)
//============================================================================



static void Test_aBFu7ll_F_Us()
{
  {
    init_simple_test("aBFu7ll_F_Us");
    static STRUCT_IF_C aBFu7ll_F_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_F_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_Us");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_Us.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_F_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_Us, aBFu7ll_F_Us)
//============================================================================



static void Test_aBFu7ll_F_Vp()
{
  {
    init_simple_test("aBFu7ll_F_Vp");
    static STRUCT_IF_C aBFu7ll_F_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_F_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_F_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_F_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_F_Vp");
    check_field_offset(lv, v2, 1, "aBFu7ll_F_Vp.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_F_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_F_Vp, aBFu7ll_F_Vp)
//============================================================================



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



static void Test_aBFu7ll_I_BFu15i()
{
  {
    init_simple_test("aBFu7ll_I_BFu15i");
    static STRUCT_IF_C aBFu7ll_I_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_I_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu15i.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7ll_I_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7ll_I_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu15i, aBFu7ll_I_BFu15i)
//============================================================================



static void Test_aBFu7ll_I_BFu15ll()
{
  {
    init_simple_test("aBFu7ll_I_BFu15ll");
    static STRUCT_IF_C aBFu7ll_I_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_I_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu15ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7ll_I_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7ll_I_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu15ll, aBFu7ll_I_BFu15ll)
//============================================================================



static void Test_aBFu7ll_I_BFu15s()
{
  {
    init_simple_test("aBFu7ll_I_BFu15s");
    static STRUCT_IF_C aBFu7ll_I_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_I_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu15s.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7ll_I_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7ll_I_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu15s, aBFu7ll_I_BFu15s)
//============================================================================



static void Test_aBFu7ll_I_BFu16i()
{
  {
    init_simple_test("aBFu7ll_I_BFu16i");
    static STRUCT_IF_C aBFu7ll_I_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_I_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu16i.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7ll_I_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7ll_I_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu16i, aBFu7ll_I_BFu16i)
//============================================================================



static void Test_aBFu7ll_I_BFu16ll()
{
  {
    init_simple_test("aBFu7ll_I_BFu16ll");
    static STRUCT_IF_C aBFu7ll_I_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_I_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu16ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7ll_I_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7ll_I_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu16ll, aBFu7ll_I_BFu16ll)
//============================================================================



static void Test_aBFu7ll_I_BFu16s()
{
  {
    init_simple_test("aBFu7ll_I_BFu16s");
    static STRUCT_IF_C aBFu7ll_I_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_I_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu16s.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7ll_I_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7ll_I_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu16s, aBFu7ll_I_BFu16s)
//============================================================================



static void Test_aBFu7ll_I_BFu17i()
{
  {
    init_simple_test("aBFu7ll_I_BFu17i");
    static STRUCT_IF_C aBFu7ll_I_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7ll_I_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu17i.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu7ll_I_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu7ll_I_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu17i, aBFu7ll_I_BFu17i)
//============================================================================



static void Test_aBFu7ll_I_BFu17ll()
{
  {
    init_simple_test("aBFu7ll_I_BFu17ll");
    static STRUCT_IF_C aBFu7ll_I_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7ll_I_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu17ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu7ll_I_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu7ll_I_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu17ll, aBFu7ll_I_BFu17ll)
//============================================================================



static void Test_aBFu7ll_I_BFu1c()
{
  {
    init_simple_test("aBFu7ll_I_BFu1c");
    static STRUCT_IF_C aBFu7ll_I_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_I_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu1c.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7ll_I_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu1c, aBFu7ll_I_BFu1c)
//============================================================================



static void Test_aBFu7ll_I_BFu1i()
{
  {
    init_simple_test("aBFu7ll_I_BFu1i");
    static STRUCT_IF_C aBFu7ll_I_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_I_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu1i.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7ll_I_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu1i, aBFu7ll_I_BFu1i)
//============================================================================



static void Test_aBFu7ll_I_BFu1ll()
{
  {
    init_simple_test("aBFu7ll_I_BFu1ll");
    static STRUCT_IF_C aBFu7ll_I_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_I_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu1ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7ll_I_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu1ll, aBFu7ll_I_BFu1ll)
//============================================================================



static void Test_aBFu7ll_I_BFu1s()
{
  {
    init_simple_test("aBFu7ll_I_BFu1s");
    static STRUCT_IF_C aBFu7ll_I_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_I_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu1s.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7ll_I_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu1s, aBFu7ll_I_BFu1s)
//============================================================================



static void Test_aBFu7ll_I_BFu31i()
{
  {
    init_simple_test("aBFu7ll_I_BFu31i");
    static STRUCT_IF_C aBFu7ll_I_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_I_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu31i.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu7ll_I_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu7ll_I_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu31i, aBFu7ll_I_BFu31i)
//============================================================================



static void Test_aBFu7ll_I_BFu31ll()
{
  {
    init_simple_test("aBFu7ll_I_BFu31ll");
    static STRUCT_IF_C aBFu7ll_I_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_I_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu31ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu7ll_I_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu7ll_I_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu31ll, aBFu7ll_I_BFu31ll)
//============================================================================



static void Test_aBFu7ll_I_BFu32i()
{
  {
    init_simple_test("aBFu7ll_I_BFu32i");
    static STRUCT_IF_C aBFu7ll_I_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_I_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu32i.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu7ll_I_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu7ll_I_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu32i, aBFu7ll_I_BFu32i)
//============================================================================



static void Test_aBFu7ll_I_BFu32ll()
{
  {
    init_simple_test("aBFu7ll_I_BFu32ll");
    static STRUCT_IF_C aBFu7ll_I_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_I_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu32ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu7ll_I_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu7ll_I_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu32ll, aBFu7ll_I_BFu32ll)
//============================================================================



static void Test_aBFu7ll_I_BFu33()
{
  {
    init_simple_test("aBFu7ll_I_BFu33");
    static STRUCT_IF_C aBFu7ll_I_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_I_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu33.v2");
    set_bf_and_test(lv, v3, 5, 0, 33, 1, "aBFu7ll_I_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, hide_ull(1LL<<32), "aBFu7ll_I_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu33, aBFu7ll_I_BFu33)
//============================================================================



static void Test_aBFu7ll_I_BFu7c()
{
  {
    init_simple_test("aBFu7ll_I_BFu7c");
    static STRUCT_IF_C aBFu7ll_I_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_I_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu7c.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7ll_I_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu7c, aBFu7ll_I_BFu7c)
//============================================================================



static void Test_aBFu7ll_I_BFu7i()
{
  {
    init_simple_test("aBFu7ll_I_BFu7i");
    static STRUCT_IF_C aBFu7ll_I_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_I_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu7i.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7ll_I_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu7i, aBFu7ll_I_BFu7i)
//============================================================================



static void Test_aBFu7ll_I_BFu7ll()
{
  {
    init_simple_test("aBFu7ll_I_BFu7ll");
    static STRUCT_IF_C aBFu7ll_I_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_I_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu7ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7ll_I_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu7ll, aBFu7ll_I_BFu7ll)
//============================================================================



static void Test_aBFu7ll_I_BFu7s()
{
  {
    init_simple_test("aBFu7ll_I_BFu7s");
    static STRUCT_IF_C aBFu7ll_I_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_I_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu7s.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7ll_I_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu7s, aBFu7ll_I_BFu7s)
//============================================================================



static void Test_aBFu7ll_I_BFu8c()
{
  {
    init_simple_test("aBFu7ll_I_BFu8c");
    static STRUCT_IF_C aBFu7ll_I_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_I_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu8c.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7ll_I_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7ll_I_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu8c, aBFu7ll_I_BFu8c)
//============================================================================



static void Test_aBFu7ll_I_BFu8i()
{
  {
    init_simple_test("aBFu7ll_I_BFu8i");
    static STRUCT_IF_C aBFu7ll_I_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_I_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu8i.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7ll_I_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7ll_I_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu8i, aBFu7ll_I_BFu8i)
//============================================================================



static void Test_aBFu7ll_I_BFu8ll()
{
  {
    init_simple_test("aBFu7ll_I_BFu8ll");
    static STRUCT_IF_C aBFu7ll_I_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_I_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu8ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7ll_I_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7ll_I_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu8ll, aBFu7ll_I_BFu8ll)
//============================================================================



static void Test_aBFu7ll_I_BFu8s()
{
  {
    init_simple_test("aBFu7ll_I_BFu8s");
    static STRUCT_IF_C aBFu7ll_I_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_I_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu8s.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7ll_I_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7ll_I_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu8s, aBFu7ll_I_BFu8s)
//============================================================================



static void Test_aBFu7ll_I_BFu9i()
{
  {
    init_simple_test("aBFu7ll_I_BFu9i");
    static STRUCT_IF_C aBFu7ll_I_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_I_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu9i.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7ll_I_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7ll_I_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu9i, aBFu7ll_I_BFu9i)
//============================================================================



static void Test_aBFu7ll_I_BFu9ll()
{
  {
    init_simple_test("aBFu7ll_I_BFu9ll");
    static STRUCT_IF_C aBFu7ll_I_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_I_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu9ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7ll_I_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7ll_I_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu9ll, aBFu7ll_I_BFu9ll)
//============================================================================



static void Test_aBFu7ll_I_BFu9s()
{
  {
    init_simple_test("aBFu7ll_I_BFu9s");
    static STRUCT_IF_C aBFu7ll_I_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_I_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_BFu9s.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7ll_I_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7ll_I_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_BFu9s, aBFu7ll_I_BFu9s)
//============================================================================



static void Test_aBFu7ll_I_C()
{
  {
    init_simple_test("aBFu7ll_I_C");
    static STRUCT_IF_C aBFu7ll_I_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_I_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_C");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_C.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_I_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_C, aBFu7ll_I_C)
//============================================================================



static void Test_aBFu7ll_I_D()
{
  {
    init_simple_test("aBFu7ll_I_D");
    static STRUCT_IF_C aBFu7ll_I_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_I_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_D");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_D.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_I_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_D, aBFu7ll_I_D)
//============================================================================



static void Test_aBFu7ll_I_F()
{
  {
    init_simple_test("aBFu7ll_I_F");
    static STRUCT_IF_C aBFu7ll_I_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_I_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_F");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_F.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_I_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_F, aBFu7ll_I_F)
//============================================================================



static void Test_aBFu7ll_I_I()
{
  {
    init_simple_test("aBFu7ll_I_I");
    static STRUCT_IF_C aBFu7ll_I_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_I_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_I");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_I.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_I_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_I, aBFu7ll_I_I)
//============================================================================



static void Test_aBFu7ll_I_Ip()
{
  {
    init_simple_test("aBFu7ll_I_Ip");
    static STRUCT_IF_C aBFu7ll_I_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_I_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_Ip");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_Ip.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_I_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_Ip, aBFu7ll_I_Ip)
//============================================================================



static void Test_aBFu7ll_I_L()
{
  {
    init_simple_test("aBFu7ll_I_L");
    static STRUCT_IF_C aBFu7ll_I_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_I_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_L");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_L.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_I_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_L, aBFu7ll_I_L)
//============================================================================



static void Test_aBFu7ll_I_S()
{
  {
    init_simple_test("aBFu7ll_I_S");
    static STRUCT_IF_C aBFu7ll_I_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_I_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_S");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_S.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_I_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_S, aBFu7ll_I_S)
//============================================================================



static void Test_aBFu7ll_I_Uc()
{
  {
    init_simple_test("aBFu7ll_I_Uc");
    static STRUCT_IF_C aBFu7ll_I_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_I_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_Uc");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_Uc.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_I_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_Uc, aBFu7ll_I_Uc)
//============================================================================



static void Test_aBFu7ll_I_Ui()
{
  {
    init_simple_test("aBFu7ll_I_Ui");
    static STRUCT_IF_C aBFu7ll_I_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_I_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_Ui");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_Ui.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_I_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_Ui, aBFu7ll_I_Ui)
//============================================================================



static void Test_aBFu7ll_I_Ul()
{
  {
    init_simple_test("aBFu7ll_I_Ul");
    static STRUCT_IF_C aBFu7ll_I_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_I_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_Ul");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_Ul.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_I_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_Ul, aBFu7ll_I_Ul)
//============================================================================



static void Test_aBFu7ll_I_Us()
{
  {
    init_simple_test("aBFu7ll_I_Us");
    static STRUCT_IF_C aBFu7ll_I_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_I_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_Us");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_Us.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_I_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_Us, aBFu7ll_I_Us)
//============================================================================



static void Test_aBFu7ll_I_Vp()
{
  {
    init_simple_test("aBFu7ll_I_Vp");
    static STRUCT_IF_C aBFu7ll_I_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_I_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_I_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_I_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_I_Vp");
    check_field_offset(lv, v2, 1, "aBFu7ll_I_Vp.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_I_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_I_Vp, aBFu7ll_I_Vp)
//============================================================================



static void Test_aBFu7ll_Ip()
{
  {
    init_simple_test("aBFu7ll_Ip");
    static STRUCT_IF_C aBFu7ll_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu7ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip, aBFu7ll_Ip)
//============================================================================



static void Test_aBFu7ll_Ip_BFu15i()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu15i");
    static STRUCT_IF_C aBFu7ll_Ip_BFu15i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Ip_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu15i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "aBFu7ll_Ip_BFu15i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "aBFu7ll_Ip_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu15i, aBFu7ll_Ip_BFu15i)
//============================================================================



static void Test_aBFu7ll_Ip_BFu15ll()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu15ll");
    static STRUCT_IF_C aBFu7ll_Ip_BFu15ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Ip_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu15ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "aBFu7ll_Ip_BFu15ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "aBFu7ll_Ip_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu15ll, aBFu7ll_Ip_BFu15ll)
//============================================================================



static void Test_aBFu7ll_Ip_BFu15s()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu15s");
    static STRUCT_IF_C aBFu7ll_Ip_BFu15s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Ip_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu15s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "aBFu7ll_Ip_BFu15s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "aBFu7ll_Ip_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu15s, aBFu7ll_Ip_BFu15s)
//============================================================================



static void Test_aBFu7ll_Ip_BFu16i()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu16i");
    static STRUCT_IF_C aBFu7ll_Ip_BFu16i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Ip_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu16i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "aBFu7ll_Ip_BFu16i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "aBFu7ll_Ip_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu16i, aBFu7ll_Ip_BFu16i)
//============================================================================



static void Test_aBFu7ll_Ip_BFu16ll()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu16ll");
    static STRUCT_IF_C aBFu7ll_Ip_BFu16ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Ip_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu16ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "aBFu7ll_Ip_BFu16ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "aBFu7ll_Ip_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu16ll, aBFu7ll_Ip_BFu16ll)
//============================================================================



static void Test_aBFu7ll_Ip_BFu16s()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu16s");
    static STRUCT_IF_C aBFu7ll_Ip_BFu16s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Ip_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu16s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "aBFu7ll_Ip_BFu16s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "aBFu7ll_Ip_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu16s, aBFu7ll_Ip_BFu16s)
//============================================================================



static void Test_aBFu7ll_Ip_BFu17i()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu17i");
    static STRUCT_IF_C aBFu7ll_Ip_BFu17i lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu7ll_Ip_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu17i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, 1, "aBFu7ll_Ip_BFu17i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, hide_ull(1LL<<16), "aBFu7ll_Ip_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu17i, aBFu7ll_Ip_BFu17i)
//============================================================================



static void Test_aBFu7ll_Ip_BFu17ll()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu17ll");
    static STRUCT_IF_C aBFu7ll_Ip_BFu17ll lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu7ll_Ip_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu17ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, 1, "aBFu7ll_Ip_BFu17ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, hide_ull(1LL<<16), "aBFu7ll_Ip_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu17ll, aBFu7ll_Ip_BFu17ll)
//============================================================================



static void Test_aBFu7ll_Ip_BFu1c()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu1c");
    static STRUCT_IF_C aBFu7ll_Ip_BFu1c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Ip_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu1c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "aBFu7ll_Ip_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu1c, aBFu7ll_Ip_BFu1c)
//============================================================================



static void Test_aBFu7ll_Ip_BFu1i()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu1i");
    static STRUCT_IF_C aBFu7ll_Ip_BFu1i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Ip_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu1i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "aBFu7ll_Ip_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu1i, aBFu7ll_Ip_BFu1i)
//============================================================================



static void Test_aBFu7ll_Ip_BFu1ll()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu1ll");
    static STRUCT_IF_C aBFu7ll_Ip_BFu1ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Ip_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu1ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "aBFu7ll_Ip_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu1ll, aBFu7ll_Ip_BFu1ll)
//============================================================================



static void Test_aBFu7ll_Ip_BFu1s()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu1s");
    static STRUCT_IF_C aBFu7ll_Ip_BFu1s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Ip_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu1s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "aBFu7ll_Ip_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu1s, aBFu7ll_Ip_BFu1s)
//============================================================================



static void Test_aBFu7ll_Ip_BFu31i()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu31i");
    static STRUCT_IF_C aBFu7ll_Ip_BFu31i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_Ip_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu31i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, 1, "aBFu7ll_Ip_BFu31i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, hide_ull(1LL<<30), "aBFu7ll_Ip_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu31i, aBFu7ll_Ip_BFu31i)
//============================================================================



static void Test_aBFu7ll_Ip_BFu31ll()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu31ll");
    static STRUCT_IF_C aBFu7ll_Ip_BFu31ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_Ip_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu31ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, 1, "aBFu7ll_Ip_BFu31ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, hide_ull(1LL<<30), "aBFu7ll_Ip_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu31ll, aBFu7ll_Ip_BFu31ll)
//============================================================================



static void Test_aBFu7ll_Ip_BFu32i()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu32i");
    static STRUCT_IF_C aBFu7ll_Ip_BFu32i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_Ip_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu32i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, 1, "aBFu7ll_Ip_BFu32i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, hide_ull(1LL<<31), "aBFu7ll_Ip_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu32i, aBFu7ll_Ip_BFu32i)
//============================================================================



static void Test_aBFu7ll_Ip_BFu32ll()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu32ll");
    static STRUCT_IF_C aBFu7ll_Ip_BFu32ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_Ip_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu32ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, 1, "aBFu7ll_Ip_BFu32ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, hide_ull(1LL<<31), "aBFu7ll_Ip_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu32ll, aBFu7ll_Ip_BFu32ll)
//============================================================================



static void Test_aBFu7ll_Ip_BFu33()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu33");
    static STRUCT_IF_C aBFu7ll_Ip_BFu33 lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu7ll_Ip_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu33.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 33, 1, "aBFu7ll_Ip_BFu33");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 33, hide_ull(1LL<<32), "aBFu7ll_Ip_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu33, aBFu7ll_Ip_BFu33)
//============================================================================



static void Test_aBFu7ll_Ip_BFu7c()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu7c");
    static STRUCT_IF_C aBFu7ll_Ip_BFu7c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Ip_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu7c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "aBFu7ll_Ip_BFu7c");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu7c, aBFu7ll_Ip_BFu7c)
//============================================================================



static void Test_aBFu7ll_Ip_BFu7i()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu7i");
    static STRUCT_IF_C aBFu7ll_Ip_BFu7i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Ip_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu7i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "aBFu7ll_Ip_BFu7i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu7i, aBFu7ll_Ip_BFu7i)
//============================================================================



static void Test_aBFu7ll_Ip_BFu7ll()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu7ll");
    static STRUCT_IF_C aBFu7ll_Ip_BFu7ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Ip_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu7ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "aBFu7ll_Ip_BFu7ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu7ll, aBFu7ll_Ip_BFu7ll)
//============================================================================



static void Test_aBFu7ll_Ip_BFu7s()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu7s");
    static STRUCT_IF_C aBFu7ll_Ip_BFu7s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Ip_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu7s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "aBFu7ll_Ip_BFu7s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu7s, aBFu7ll_Ip_BFu7s)
//============================================================================



static void Test_aBFu7ll_Ip_BFu8c()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu8c");
    static STRUCT_IF_C aBFu7ll_Ip_BFu8c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Ip_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu8c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "aBFu7ll_Ip_BFu8c");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "aBFu7ll_Ip_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu8c, aBFu7ll_Ip_BFu8c)
//============================================================================



static void Test_aBFu7ll_Ip_BFu8i()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu8i");
    static STRUCT_IF_C aBFu7ll_Ip_BFu8i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Ip_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu8i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "aBFu7ll_Ip_BFu8i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "aBFu7ll_Ip_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu8i, aBFu7ll_Ip_BFu8i)
//============================================================================



static void Test_aBFu7ll_Ip_BFu8ll()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu8ll");
    static STRUCT_IF_C aBFu7ll_Ip_BFu8ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Ip_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu8ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "aBFu7ll_Ip_BFu8ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "aBFu7ll_Ip_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu8ll, aBFu7ll_Ip_BFu8ll)
//============================================================================



static void Test_aBFu7ll_Ip_BFu8s()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu8s");
    static STRUCT_IF_C aBFu7ll_Ip_BFu8s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Ip_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu8s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "aBFu7ll_Ip_BFu8s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "aBFu7ll_Ip_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu8s, aBFu7ll_Ip_BFu8s)
//============================================================================



static void Test_aBFu7ll_Ip_BFu9i()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu9i");
    static STRUCT_IF_C aBFu7ll_Ip_BFu9i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Ip_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu9i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "aBFu7ll_Ip_BFu9i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "aBFu7ll_Ip_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu9i, aBFu7ll_Ip_BFu9i)
//============================================================================



static void Test_aBFu7ll_Ip_BFu9ll()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu9ll");
    static STRUCT_IF_C aBFu7ll_Ip_BFu9ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Ip_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu9ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "aBFu7ll_Ip_BFu9ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "aBFu7ll_Ip_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu9ll, aBFu7ll_Ip_BFu9ll)
//============================================================================



static void Test_aBFu7ll_Ip_BFu9s()
{
  {
    init_simple_test("aBFu7ll_Ip_BFu9s");
    static STRUCT_IF_C aBFu7ll_Ip_BFu9s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Ip_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_BFu9s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "aBFu7ll_Ip_BFu9s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "aBFu7ll_Ip_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_BFu9s, aBFu7ll_Ip_BFu9s)
//============================================================================



static void Test_aBFu7ll_Ip_C()
{
  {
    init_simple_test("aBFu7ll_Ip_C");
    static STRUCT_IF_C aBFu7ll_Ip_C lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Ip_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_C");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_C.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Ip_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_C, aBFu7ll_Ip_C)
//============================================================================



static void Test_aBFu7ll_Ip_D()
{
  {
    init_simple_test("aBFu7ll_Ip_D");
    static STRUCT_IF_C aBFu7ll_Ip_D lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7ll_Ip_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_D");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_D.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Ip_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_D, aBFu7ll_Ip_D)
//============================================================================



static void Test_aBFu7ll_Ip_F()
{
  {
    init_simple_test("aBFu7ll_Ip_F");
    static STRUCT_IF_C aBFu7ll_Ip_F lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_Ip_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_F");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_F.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Ip_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_F, aBFu7ll_Ip_F)
//============================================================================



static void Test_aBFu7ll_Ip_I()
{
  {
    init_simple_test("aBFu7ll_Ip_I");
    static STRUCT_IF_C aBFu7ll_Ip_I lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_Ip_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_I");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_I.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Ip_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_I, aBFu7ll_Ip_I)
//============================================================================



static void Test_aBFu7ll_Ip_Ip()
{
  {
    init_simple_test("aBFu7ll_Ip_Ip");
    static STRUCT_IF_C aBFu7ll_Ip_Ip lv;
    check2(sizeof(lv), ABISELECT(17,9), "sizeof(aBFu7ll_Ip_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_Ip");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_Ip.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Ip_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_Ip, aBFu7ll_Ip_Ip)
//============================================================================



static void Test_aBFu7ll_Ip_L()
{
  {
    init_simple_test("aBFu7ll_Ip_L");
    static STRUCT_IF_C aBFu7ll_Ip_L lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7ll_Ip_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_L");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_L.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Ip_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_L, aBFu7ll_Ip_L)
//============================================================================



static void Test_aBFu7ll_Ip_S()
{
  {
    init_simple_test("aBFu7ll_Ip_S");
    static STRUCT_IF_C aBFu7ll_Ip_S lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Ip_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_S");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_S.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Ip_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_S, aBFu7ll_Ip_S)
//============================================================================



static void Test_aBFu7ll_Ip_Uc()
{
  {
    init_simple_test("aBFu7ll_Ip_Uc");
    static STRUCT_IF_C aBFu7ll_Ip_Uc lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Ip_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_Uc");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_Uc.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Ip_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_Uc, aBFu7ll_Ip_Uc)
//============================================================================



static void Test_aBFu7ll_Ip_Ui()
{
  {
    init_simple_test("aBFu7ll_Ip_Ui");
    static STRUCT_IF_C aBFu7ll_Ip_Ui lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_Ip_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_Ui");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_Ui.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Ip_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_Ui, aBFu7ll_Ip_Ui)
//============================================================================



static void Test_aBFu7ll_Ip_Ul()
{
  {
    init_simple_test("aBFu7ll_Ip_Ul");
    static STRUCT_IF_C aBFu7ll_Ip_Ul lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7ll_Ip_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_Ul");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_Ul.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Ip_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_Ul, aBFu7ll_Ip_Ul)
//============================================================================



static void Test_aBFu7ll_Ip_Us()
{
  {
    init_simple_test("aBFu7ll_Ip_Us");
    static STRUCT_IF_C aBFu7ll_Ip_Us lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Ip_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_Us");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_Us.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Ip_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_Us, aBFu7ll_Ip_Us)
//============================================================================



static void Test_aBFu7ll_Ip_Vp()
{
  {
    init_simple_test("aBFu7ll_Ip_Vp");
    static STRUCT_IF_C aBFu7ll_Ip_Vp lv;
    check2(sizeof(lv), ABISELECT(17,9), "sizeof(aBFu7ll_Ip_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ip_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ip_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ip_Vp");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ip_Vp.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Ip_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ip_Vp, aBFu7ll_Ip_Vp)
//============================================================================



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



static void Test_aBFu7ll_L_BFu15i()
{
  {
    init_simple_test("aBFu7ll_L_BFu15i");
    static STRUCT_IF_C aBFu7ll_L_BFu15i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_L_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu15i.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7ll_L_BFu15i");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7ll_L_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu15i, aBFu7ll_L_BFu15i)
//============================================================================



static void Test_aBFu7ll_L_BFu15ll()
{
  {
    init_simple_test("aBFu7ll_L_BFu15ll");
    static STRUCT_IF_C aBFu7ll_L_BFu15ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_L_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu15ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7ll_L_BFu15ll");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7ll_L_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu15ll, aBFu7ll_L_BFu15ll)
//============================================================================



static void Test_aBFu7ll_L_BFu15s()
{
  {
    init_simple_test("aBFu7ll_L_BFu15s");
    static STRUCT_IF_C aBFu7ll_L_BFu15s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_L_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu15s.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7ll_L_BFu15s");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7ll_L_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu15s, aBFu7ll_L_BFu15s)
//============================================================================



static void Test_aBFu7ll_L_BFu16i()
{
  {
    init_simple_test("aBFu7ll_L_BFu16i");
    static STRUCT_IF_C aBFu7ll_L_BFu16i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_L_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu16i.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7ll_L_BFu16i");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7ll_L_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu16i, aBFu7ll_L_BFu16i)
//============================================================================



static void Test_aBFu7ll_L_BFu16ll()
{
  {
    init_simple_test("aBFu7ll_L_BFu16ll");
    static STRUCT_IF_C aBFu7ll_L_BFu16ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_L_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu16ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7ll_L_BFu16ll");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7ll_L_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu16ll, aBFu7ll_L_BFu16ll)
//============================================================================



static void Test_aBFu7ll_L_BFu16s()
{
  {
    init_simple_test("aBFu7ll_L_BFu16s");
    static STRUCT_IF_C aBFu7ll_L_BFu16s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_L_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu16s.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7ll_L_BFu16s");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7ll_L_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu16s, aBFu7ll_L_BFu16s)
//============================================================================



static void Test_aBFu7ll_L_BFu17i()
{
  {
    init_simple_test("aBFu7ll_L_BFu17i");
    static STRUCT_IF_C aBFu7ll_L_BFu17i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu7ll_L_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu17i.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu7ll_L_BFu17i");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu7ll_L_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu17i, aBFu7ll_L_BFu17i)
//============================================================================



static void Test_aBFu7ll_L_BFu17ll()
{
  {
    init_simple_test("aBFu7ll_L_BFu17ll");
    static STRUCT_IF_C aBFu7ll_L_BFu17ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu7ll_L_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu17ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu7ll_L_BFu17ll");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu7ll_L_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu17ll, aBFu7ll_L_BFu17ll)
//============================================================================



static void Test_aBFu7ll_L_BFu1c()
{
  {
    init_simple_test("aBFu7ll_L_BFu1c");
    static STRUCT_IF_C aBFu7ll_L_BFu1c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_L_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu1c.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7ll_L_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu1c, aBFu7ll_L_BFu1c)
//============================================================================



static void Test_aBFu7ll_L_BFu1i()
{
  {
    init_simple_test("aBFu7ll_L_BFu1i");
    static STRUCT_IF_C aBFu7ll_L_BFu1i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_L_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu1i.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7ll_L_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu1i, aBFu7ll_L_BFu1i)
//============================================================================



static void Test_aBFu7ll_L_BFu1ll()
{
  {
    init_simple_test("aBFu7ll_L_BFu1ll");
    static STRUCT_IF_C aBFu7ll_L_BFu1ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_L_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu1ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7ll_L_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu1ll, aBFu7ll_L_BFu1ll)
//============================================================================



static void Test_aBFu7ll_L_BFu1s()
{
  {
    init_simple_test("aBFu7ll_L_BFu1s");
    static STRUCT_IF_C aBFu7ll_L_BFu1s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_L_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu1s.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7ll_L_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu1s, aBFu7ll_L_BFu1s)
//============================================================================



static void Test_aBFu7ll_L_BFu31i()
{
  {
    init_simple_test("aBFu7ll_L_BFu31i");
    static STRUCT_IF_C aBFu7ll_L_BFu31i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_L_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu31i.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu7ll_L_BFu31i");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu7ll_L_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu31i, aBFu7ll_L_BFu31i)
//============================================================================



static void Test_aBFu7ll_L_BFu31ll()
{
  {
    init_simple_test("aBFu7ll_L_BFu31ll");
    static STRUCT_IF_C aBFu7ll_L_BFu31ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_L_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu31ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu7ll_L_BFu31ll");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu7ll_L_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu31ll, aBFu7ll_L_BFu31ll)
//============================================================================



static void Test_aBFu7ll_L_BFu32i()
{
  {
    init_simple_test("aBFu7ll_L_BFu32i");
    static STRUCT_IF_C aBFu7ll_L_BFu32i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_L_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu32i.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu7ll_L_BFu32i");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu7ll_L_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu32i, aBFu7ll_L_BFu32i)
//============================================================================



static void Test_aBFu7ll_L_BFu32ll()
{
  {
    init_simple_test("aBFu7ll_L_BFu32ll");
    static STRUCT_IF_C aBFu7ll_L_BFu32ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_L_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu32ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu7ll_L_BFu32ll");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu7ll_L_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu32ll, aBFu7ll_L_BFu32ll)
//============================================================================



static void Test_aBFu7ll_L_BFu33()
{
  {
    init_simple_test("aBFu7ll_L_BFu33");
    static STRUCT_IF_C aBFu7ll_L_BFu33 lv;
    check2(sizeof(lv), 14, "sizeof(aBFu7ll_L_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu33.v2");
    set_bf_and_test(lv, v3, 9, 0, 33, 1, "aBFu7ll_L_BFu33");
    set_bf_and_test(lv, v3, 9, 0, 33, hide_ull(1LL<<32), "aBFu7ll_L_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu33, aBFu7ll_L_BFu33)
//============================================================================



static void Test_aBFu7ll_L_BFu7c()
{
  {
    init_simple_test("aBFu7ll_L_BFu7c");
    static STRUCT_IF_C aBFu7ll_L_BFu7c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_L_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu7c.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7ll_L_BFu7c");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu7c, aBFu7ll_L_BFu7c)
//============================================================================



static void Test_aBFu7ll_L_BFu7i()
{
  {
    init_simple_test("aBFu7ll_L_BFu7i");
    static STRUCT_IF_C aBFu7ll_L_BFu7i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_L_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu7i.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7ll_L_BFu7i");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu7i, aBFu7ll_L_BFu7i)
//============================================================================



static void Test_aBFu7ll_L_BFu7ll()
{
  {
    init_simple_test("aBFu7ll_L_BFu7ll");
    static STRUCT_IF_C aBFu7ll_L_BFu7ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_L_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu7ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7ll_L_BFu7ll");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu7ll, aBFu7ll_L_BFu7ll)
//============================================================================



static void Test_aBFu7ll_L_BFu7s()
{
  {
    init_simple_test("aBFu7ll_L_BFu7s");
    static STRUCT_IF_C aBFu7ll_L_BFu7s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_L_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu7s.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7ll_L_BFu7s");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu7s, aBFu7ll_L_BFu7s)
//============================================================================



static void Test_aBFu7ll_L_BFu8c()
{
  {
    init_simple_test("aBFu7ll_L_BFu8c");
    static STRUCT_IF_C aBFu7ll_L_BFu8c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_L_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu8c.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7ll_L_BFu8c");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7ll_L_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu8c, aBFu7ll_L_BFu8c)
//============================================================================



static void Test_aBFu7ll_L_BFu8i()
{
  {
    init_simple_test("aBFu7ll_L_BFu8i");
    static STRUCT_IF_C aBFu7ll_L_BFu8i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_L_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu8i.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7ll_L_BFu8i");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7ll_L_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu8i, aBFu7ll_L_BFu8i)
//============================================================================



static void Test_aBFu7ll_L_BFu8ll()
{
  {
    init_simple_test("aBFu7ll_L_BFu8ll");
    static STRUCT_IF_C aBFu7ll_L_BFu8ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_L_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu8ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7ll_L_BFu8ll");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7ll_L_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu8ll, aBFu7ll_L_BFu8ll)
//============================================================================



static void Test_aBFu7ll_L_BFu8s()
{
  {
    init_simple_test("aBFu7ll_L_BFu8s");
    static STRUCT_IF_C aBFu7ll_L_BFu8s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_L_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu8s.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7ll_L_BFu8s");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7ll_L_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu8s, aBFu7ll_L_BFu8s)
//============================================================================



static void Test_aBFu7ll_L_BFu9i()
{
  {
    init_simple_test("aBFu7ll_L_BFu9i");
    static STRUCT_IF_C aBFu7ll_L_BFu9i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_L_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu9i.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7ll_L_BFu9i");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7ll_L_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu9i, aBFu7ll_L_BFu9i)
//============================================================================



static void Test_aBFu7ll_L_BFu9ll()
{
  {
    init_simple_test("aBFu7ll_L_BFu9ll");
    static STRUCT_IF_C aBFu7ll_L_BFu9ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_L_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu9ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7ll_L_BFu9ll");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7ll_L_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu9ll, aBFu7ll_L_BFu9ll)
//============================================================================



static void Test_aBFu7ll_L_BFu9s()
{
  {
    init_simple_test("aBFu7ll_L_BFu9s");
    static STRUCT_IF_C aBFu7ll_L_BFu9s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_L_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_BFu9s.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7ll_L_BFu9s");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7ll_L_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_BFu9s, aBFu7ll_L_BFu9s)
//============================================================================



static void Test_aBFu7ll_L_C()
{
  {
    init_simple_test("aBFu7ll_L_C");
    static STRUCT_IF_C aBFu7ll_L_C lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_L_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_C");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_C.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_L_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_C, aBFu7ll_L_C)
//============================================================================



static void Test_aBFu7ll_L_D()
{
  {
    init_simple_test("aBFu7ll_L_D");
    static STRUCT_IF_C aBFu7ll_L_D lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7ll_L_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_D");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_D.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_L_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_D, aBFu7ll_L_D)
//============================================================================



static void Test_aBFu7ll_L_F()
{
  {
    init_simple_test("aBFu7ll_L_F");
    static STRUCT_IF_C aBFu7ll_L_F lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_L_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_F");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_F.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_L_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_F, aBFu7ll_L_F)
//============================================================================



static void Test_aBFu7ll_L_I()
{
  {
    init_simple_test("aBFu7ll_L_I");
    static STRUCT_IF_C aBFu7ll_L_I lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_L_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_I");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_I.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_L_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_I, aBFu7ll_L_I)
//============================================================================



static void Test_aBFu7ll_L_Ip()
{
  {
    init_simple_test("aBFu7ll_L_Ip");
    static STRUCT_IF_C aBFu7ll_L_Ip lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7ll_L_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_Ip");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_Ip.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_L_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_Ip, aBFu7ll_L_Ip)
//============================================================================



static void Test_aBFu7ll_L_L()
{
  {
    init_simple_test("aBFu7ll_L_L");
    static STRUCT_IF_C aBFu7ll_L_L lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7ll_L_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_L");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_L.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_L_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_L, aBFu7ll_L_L)
//============================================================================



static void Test_aBFu7ll_L_S()
{
  {
    init_simple_test("aBFu7ll_L_S");
    static STRUCT_IF_C aBFu7ll_L_S lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_L_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_S");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_S.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_L_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_S, aBFu7ll_L_S)
//============================================================================



static void Test_aBFu7ll_L_Uc()
{
  {
    init_simple_test("aBFu7ll_L_Uc");
    static STRUCT_IF_C aBFu7ll_L_Uc lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_L_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_Uc");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_Uc.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_L_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_Uc, aBFu7ll_L_Uc)
//============================================================================



static void Test_aBFu7ll_L_Ui()
{
  {
    init_simple_test("aBFu7ll_L_Ui");
    static STRUCT_IF_C aBFu7ll_L_Ui lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_L_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_Ui");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_Ui.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_L_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_Ui, aBFu7ll_L_Ui)
//============================================================================



static void Test_aBFu7ll_L_Ul()
{
  {
    init_simple_test("aBFu7ll_L_Ul");
    static STRUCT_IF_C aBFu7ll_L_Ul lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7ll_L_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_Ul");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_Ul.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_L_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_Ul, aBFu7ll_L_Ul)
//============================================================================



static void Test_aBFu7ll_L_Us()
{
  {
    init_simple_test("aBFu7ll_L_Us");
    static STRUCT_IF_C aBFu7ll_L_Us lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_L_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_Us");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_Us.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_L_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_Us, aBFu7ll_L_Us)
//============================================================================



static void Test_aBFu7ll_L_Vp()
{
  {
    init_simple_test("aBFu7ll_L_Vp");
    static STRUCT_IF_C aBFu7ll_L_Vp lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7ll_L_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_L_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_L_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_L_Vp");
    check_field_offset(lv, v2, 1, "aBFu7ll_L_Vp.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_L_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_L_Vp, aBFu7ll_L_Vp)
//============================================================================



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



static void Test_aBFu7ll_S_BFu15i()
{
  {
    init_simple_test("aBFu7ll_S_BFu15i");
    static STRUCT_IF_C aBFu7ll_S_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_S_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu15i.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7ll_S_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7ll_S_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu15i, aBFu7ll_S_BFu15i)
//============================================================================



static void Test_aBFu7ll_S_BFu15ll()
{
  {
    init_simple_test("aBFu7ll_S_BFu15ll");
    static STRUCT_IF_C aBFu7ll_S_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_S_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu15ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7ll_S_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7ll_S_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu15ll, aBFu7ll_S_BFu15ll)
//============================================================================



static void Test_aBFu7ll_S_BFu15s()
{
  {
    init_simple_test("aBFu7ll_S_BFu15s");
    static STRUCT_IF_C aBFu7ll_S_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_S_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu15s.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7ll_S_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7ll_S_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu15s, aBFu7ll_S_BFu15s)
//============================================================================



static void Test_aBFu7ll_S_BFu16i()
{
  {
    init_simple_test("aBFu7ll_S_BFu16i");
    static STRUCT_IF_C aBFu7ll_S_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_S_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu16i.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7ll_S_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7ll_S_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu16i, aBFu7ll_S_BFu16i)
//============================================================================



static void Test_aBFu7ll_S_BFu16ll()
{
  {
    init_simple_test("aBFu7ll_S_BFu16ll");
    static STRUCT_IF_C aBFu7ll_S_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_S_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu16ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7ll_S_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7ll_S_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu16ll, aBFu7ll_S_BFu16ll)
//============================================================================



static void Test_aBFu7ll_S_BFu16s()
{
  {
    init_simple_test("aBFu7ll_S_BFu16s");
    static STRUCT_IF_C aBFu7ll_S_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_S_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu16s.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7ll_S_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7ll_S_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu16s, aBFu7ll_S_BFu16s)
//============================================================================



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



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



static void Test_aBFu7ll_S_BFu1c()
{
  {
    init_simple_test("aBFu7ll_S_BFu1c");
    static STRUCT_IF_C aBFu7ll_S_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_S_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu1c.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "aBFu7ll_S_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu1c, aBFu7ll_S_BFu1c)
//============================================================================



static void Test_aBFu7ll_S_BFu1i()
{
  {
    init_simple_test("aBFu7ll_S_BFu1i");
    static STRUCT_IF_C aBFu7ll_S_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_S_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu1i.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "aBFu7ll_S_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu1i, aBFu7ll_S_BFu1i)
//============================================================================



static void Test_aBFu7ll_S_BFu1ll()
{
  {
    init_simple_test("aBFu7ll_S_BFu1ll");
    static STRUCT_IF_C aBFu7ll_S_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_S_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu1ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "aBFu7ll_S_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu1ll, aBFu7ll_S_BFu1ll)
//============================================================================



static void Test_aBFu7ll_S_BFu1s()
{
  {
    init_simple_test("aBFu7ll_S_BFu1s");
    static STRUCT_IF_C aBFu7ll_S_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_S_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu1s.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "aBFu7ll_S_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu1s, aBFu7ll_S_BFu1s)
//============================================================================



static void Test_aBFu7ll_S_BFu31i()
{
  {
    init_simple_test("aBFu7ll_S_BFu31i");
    static STRUCT_IF_C aBFu7ll_S_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_S_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu31i.v2");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "aBFu7ll_S_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "aBFu7ll_S_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu31i, aBFu7ll_S_BFu31i)
//============================================================================



static void Test_aBFu7ll_S_BFu31ll()
{
  {
    init_simple_test("aBFu7ll_S_BFu31ll");
    static STRUCT_IF_C aBFu7ll_S_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_S_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu31ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "aBFu7ll_S_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "aBFu7ll_S_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu31ll, aBFu7ll_S_BFu31ll)
//============================================================================



static void Test_aBFu7ll_S_BFu32i()
{
  {
    init_simple_test("aBFu7ll_S_BFu32i");
    static STRUCT_IF_C aBFu7ll_S_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_S_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu32i.v2");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "aBFu7ll_S_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "aBFu7ll_S_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu32i, aBFu7ll_S_BFu32i)
//============================================================================



static void Test_aBFu7ll_S_BFu32ll()
{
  {
    init_simple_test("aBFu7ll_S_BFu32ll");
    static STRUCT_IF_C aBFu7ll_S_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_S_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu32ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "aBFu7ll_S_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "aBFu7ll_S_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu32ll, aBFu7ll_S_BFu32ll)
//============================================================================



static void Test_aBFu7ll_S_BFu33()
{
  {
    init_simple_test("aBFu7ll_S_BFu33");
    static STRUCT_IF_C aBFu7ll_S_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7ll_S_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu33.v2");
    set_bf_and_test(lv, v3, 3, 0, 33, 1, "aBFu7ll_S_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, hide_ull(1LL<<32), "aBFu7ll_S_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu33, aBFu7ll_S_BFu33)
//============================================================================



static void Test_aBFu7ll_S_BFu7c()
{
  {
    init_simple_test("aBFu7ll_S_BFu7c");
    static STRUCT_IF_C aBFu7ll_S_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_S_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu7c.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "aBFu7ll_S_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu7c, aBFu7ll_S_BFu7c)
//============================================================================



static void Test_aBFu7ll_S_BFu7i()
{
  {
    init_simple_test("aBFu7ll_S_BFu7i");
    static STRUCT_IF_C aBFu7ll_S_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_S_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu7i.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "aBFu7ll_S_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu7i, aBFu7ll_S_BFu7i)
//============================================================================



static void Test_aBFu7ll_S_BFu7ll()
{
  {
    init_simple_test("aBFu7ll_S_BFu7ll");
    static STRUCT_IF_C aBFu7ll_S_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_S_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu7ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "aBFu7ll_S_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu7ll, aBFu7ll_S_BFu7ll)
//============================================================================



static void Test_aBFu7ll_S_BFu7s()
{
  {
    init_simple_test("aBFu7ll_S_BFu7s");
    static STRUCT_IF_C aBFu7ll_S_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_S_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu7s.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "aBFu7ll_S_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu7s, aBFu7ll_S_BFu7s)
//============================================================================



static void Test_aBFu7ll_S_BFu8c()
{
  {
    init_simple_test("aBFu7ll_S_BFu8c");
    static STRUCT_IF_C aBFu7ll_S_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_S_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu8c.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7ll_S_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7ll_S_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu8c, aBFu7ll_S_BFu8c)
//============================================================================



static void Test_aBFu7ll_S_BFu8i()
{
  {
    init_simple_test("aBFu7ll_S_BFu8i");
    static STRUCT_IF_C aBFu7ll_S_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_S_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu8i.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7ll_S_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7ll_S_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu8i, aBFu7ll_S_BFu8i)
//============================================================================



static void Test_aBFu7ll_S_BFu8ll()
{
  {
    init_simple_test("aBFu7ll_S_BFu8ll");
    static STRUCT_IF_C aBFu7ll_S_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_S_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu8ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7ll_S_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7ll_S_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu8ll, aBFu7ll_S_BFu8ll)
//============================================================================



static void Test_aBFu7ll_S_BFu8s()
{
  {
    init_simple_test("aBFu7ll_S_BFu8s");
    static STRUCT_IF_C aBFu7ll_S_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_S_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu8s.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7ll_S_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7ll_S_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu8s, aBFu7ll_S_BFu8s)
//============================================================================



static void Test_aBFu7ll_S_BFu9i()
{
  {
    init_simple_test("aBFu7ll_S_BFu9i");
    static STRUCT_IF_C aBFu7ll_S_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_S_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu9i.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7ll_S_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7ll_S_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu9i, aBFu7ll_S_BFu9i)
//============================================================================



static void Test_aBFu7ll_S_BFu9ll()
{
  {
    init_simple_test("aBFu7ll_S_BFu9ll");
    static STRUCT_IF_C aBFu7ll_S_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_S_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu9ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7ll_S_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7ll_S_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu9ll, aBFu7ll_S_BFu9ll)
//============================================================================



static void Test_aBFu7ll_S_BFu9s()
{
  {
    init_simple_test("aBFu7ll_S_BFu9s");
    static STRUCT_IF_C aBFu7ll_S_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_S_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_BFu9s.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7ll_S_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7ll_S_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_BFu9s, aBFu7ll_S_BFu9s)
//============================================================================



static void Test_aBFu7ll_S_C()
{
  {
    init_simple_test("aBFu7ll_S_C");
    static STRUCT_IF_C aBFu7ll_S_C lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_S_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_C");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_C.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_S_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_C, aBFu7ll_S_C)
//============================================================================



static void Test_aBFu7ll_S_D()
{
  {
    init_simple_test("aBFu7ll_S_D");
    static STRUCT_IF_C aBFu7ll_S_D lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_S_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_D");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_D.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_S_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_D, aBFu7ll_S_D)
//============================================================================



static void Test_aBFu7ll_S_F()
{
  {
    init_simple_test("aBFu7ll_S_F");
    static STRUCT_IF_C aBFu7ll_S_F lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_S_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_F");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_F.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_S_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_F, aBFu7ll_S_F)
//============================================================================



static void Test_aBFu7ll_S_I()
{
  {
    init_simple_test("aBFu7ll_S_I");
    static STRUCT_IF_C aBFu7ll_S_I lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_S_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_I");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_I.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_S_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_I, aBFu7ll_S_I)
//============================================================================



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



static void Test_aBFu7ll_S_L()
{
  {
    init_simple_test("aBFu7ll_S_L");
    static STRUCT_IF_C aBFu7ll_S_L lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_S_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_L");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_L.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_S_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_L, aBFu7ll_S_L)
//============================================================================



static void Test_aBFu7ll_S_S()
{
  {
    init_simple_test("aBFu7ll_S_S");
    static STRUCT_IF_C aBFu7ll_S_S lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_S_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_S");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_S.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_S_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_S, aBFu7ll_S_S)
//============================================================================



static void Test_aBFu7ll_S_Uc()
{
  {
    init_simple_test("aBFu7ll_S_Uc");
    static STRUCT_IF_C aBFu7ll_S_Uc lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_S_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_Uc");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_Uc.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_S_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_Uc, aBFu7ll_S_Uc)
//============================================================================



static void Test_aBFu7ll_S_Ui()
{
  {
    init_simple_test("aBFu7ll_S_Ui");
    static STRUCT_IF_C aBFu7ll_S_Ui lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_S_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_Ui");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_Ui.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_S_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_Ui, aBFu7ll_S_Ui)
//============================================================================



static void Test_aBFu7ll_S_Ul()
{
  {
    init_simple_test("aBFu7ll_S_Ul");
    static STRUCT_IF_C aBFu7ll_S_Ul lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_S_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_Ul");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_Ul.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_S_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_Ul, aBFu7ll_S_Ul)
//============================================================================



static void Test_aBFu7ll_S_Us()
{
  {
    init_simple_test("aBFu7ll_S_Us");
    static STRUCT_IF_C aBFu7ll_S_Us lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_S_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_S_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_S_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_S_Us");
    check_field_offset(lv, v2, 1, "aBFu7ll_S_Us.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_S_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_S_Us, aBFu7ll_S_Us)
//============================================================================



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



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



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



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



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



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



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



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



static void Test_aBFu7ll_Uc_BFu17i()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu17i");
    static STRUCT_IF_C aBFu7ll_Uc_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_Uc_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu17i.v2");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7ll_Uc_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7ll_Uc_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu17i, aBFu7ll_Uc_BFu17i)
//============================================================================



static void Test_aBFu7ll_Uc_BFu17ll()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu17ll");
    static STRUCT_IF_C aBFu7ll_Uc_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_Uc_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu17ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7ll_Uc_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7ll_Uc_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu17ll, aBFu7ll_Uc_BFu17ll)
//============================================================================



static void Test_aBFu7ll_Uc_BFu1c()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu1c");
    static STRUCT_IF_C aBFu7ll_Uc_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_Uc_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu1c.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_Uc_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu1c, aBFu7ll_Uc_BFu1c)
//============================================================================



static void Test_aBFu7ll_Uc_BFu1i()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu1i");
    static STRUCT_IF_C aBFu7ll_Uc_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_Uc_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu1i.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_Uc_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu1i, aBFu7ll_Uc_BFu1i)
//============================================================================



static void Test_aBFu7ll_Uc_BFu1ll()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu1ll");
    static STRUCT_IF_C aBFu7ll_Uc_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_Uc_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu1ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_Uc_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu1ll, aBFu7ll_Uc_BFu1ll)
//============================================================================



static void Test_aBFu7ll_Uc_BFu1s()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu1s");
    static STRUCT_IF_C aBFu7ll_Uc_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_Uc_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu1s.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7ll_Uc_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu1s, aBFu7ll_Uc_BFu1s)
//============================================================================



static void Test_aBFu7ll_Uc_BFu31i()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu31i");
    static STRUCT_IF_C aBFu7ll_Uc_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Uc_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu31i.v2");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7ll_Uc_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7ll_Uc_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu31i, aBFu7ll_Uc_BFu31i)
//============================================================================



static void Test_aBFu7ll_Uc_BFu31ll()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu31ll");
    static STRUCT_IF_C aBFu7ll_Uc_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Uc_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu31ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7ll_Uc_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7ll_Uc_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu31ll, aBFu7ll_Uc_BFu31ll)
//============================================================================



static void Test_aBFu7ll_Uc_BFu32i()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu32i");
    static STRUCT_IF_C aBFu7ll_Uc_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Uc_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu32i.v2");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7ll_Uc_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7ll_Uc_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu32i, aBFu7ll_Uc_BFu32i)
//============================================================================



static void Test_aBFu7ll_Uc_BFu32ll()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu32ll");
    static STRUCT_IF_C aBFu7ll_Uc_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Uc_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu32ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7ll_Uc_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7ll_Uc_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu32ll, aBFu7ll_Uc_BFu32ll)
//============================================================================



static void Test_aBFu7ll_Uc_BFu33()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu33");
    static STRUCT_IF_C aBFu7ll_Uc_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Uc_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu33.v2");
    set_bf_and_test(lv, v3, 2, 0, 33, 1, "aBFu7ll_Uc_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, hide_ull(1LL<<32), "aBFu7ll_Uc_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu33, aBFu7ll_Uc_BFu33)
//============================================================================



static void Test_aBFu7ll_Uc_BFu7c()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu7c");
    static STRUCT_IF_C aBFu7ll_Uc_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_Uc_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu7c.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_Uc_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu7c, aBFu7ll_Uc_BFu7c)
//============================================================================



static void Test_aBFu7ll_Uc_BFu7i()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu7i");
    static STRUCT_IF_C aBFu7ll_Uc_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_Uc_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu7i.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_Uc_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu7i, aBFu7ll_Uc_BFu7i)
//============================================================================



static void Test_aBFu7ll_Uc_BFu7ll()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu7ll");
    static STRUCT_IF_C aBFu7ll_Uc_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_Uc_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu7ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_Uc_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu7ll, aBFu7ll_Uc_BFu7ll)
//============================================================================



static void Test_aBFu7ll_Uc_BFu7s()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu7s");
    static STRUCT_IF_C aBFu7ll_Uc_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_Uc_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu7s.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7ll_Uc_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu7s, aBFu7ll_Uc_BFu7s)
//============================================================================



static void Test_aBFu7ll_Uc_BFu8c()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu8c");
    static STRUCT_IF_C aBFu7ll_Uc_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_Uc_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu8c.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_Uc_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_Uc_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu8c, aBFu7ll_Uc_BFu8c)
//============================================================================



static void Test_aBFu7ll_Uc_BFu8i()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu8i");
    static STRUCT_IF_C aBFu7ll_Uc_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_Uc_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu8i.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_Uc_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_Uc_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu8i, aBFu7ll_Uc_BFu8i)
//============================================================================



static void Test_aBFu7ll_Uc_BFu8ll()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu8ll");
    static STRUCT_IF_C aBFu7ll_Uc_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_Uc_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu8ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_Uc_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_Uc_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu8ll, aBFu7ll_Uc_BFu8ll)
//============================================================================



static void Test_aBFu7ll_Uc_BFu8s()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu8s");
    static STRUCT_IF_C aBFu7ll_Uc_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_Uc_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu8s.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7ll_Uc_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7ll_Uc_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu8s, aBFu7ll_Uc_BFu8s)
//============================================================================



static void Test_aBFu7ll_Uc_BFu9i()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu9i");
    static STRUCT_IF_C aBFu7ll_Uc_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Uc_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu9i.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7ll_Uc_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7ll_Uc_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu9i, aBFu7ll_Uc_BFu9i)
//============================================================================



static void Test_aBFu7ll_Uc_BFu9ll()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu9ll");
    static STRUCT_IF_C aBFu7ll_Uc_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Uc_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu9ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7ll_Uc_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7ll_Uc_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu9ll, aBFu7ll_Uc_BFu9ll)
//============================================================================



static void Test_aBFu7ll_Uc_BFu9s()
{
  {
    init_simple_test("aBFu7ll_Uc_BFu9s");
    static STRUCT_IF_C aBFu7ll_Uc_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Uc_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_BFu9s.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7ll_Uc_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7ll_Uc_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_BFu9s, aBFu7ll_Uc_BFu9s)
//============================================================================



static void Test_aBFu7ll_Uc_C()
{
  {
    init_simple_test("aBFu7ll_Uc_C");
    static STRUCT_IF_C aBFu7ll_Uc_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_Uc_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_C");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_C.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_Uc_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_C, aBFu7ll_Uc_C)
//============================================================================



static void Test_aBFu7ll_Uc_D()
{
  {
    init_simple_test("aBFu7ll_Uc_D");
    static STRUCT_IF_C aBFu7ll_Uc_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Uc_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_D");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_D.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_Uc_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_D, aBFu7ll_Uc_D)
//============================================================================



static void Test_aBFu7ll_Uc_F()
{
  {
    init_simple_test("aBFu7ll_Uc_F");
    static STRUCT_IF_C aBFu7ll_Uc_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Uc_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_F");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_F.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_Uc_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_F, aBFu7ll_Uc_F)
//============================================================================



static void Test_aBFu7ll_Uc_I()
{
  {
    init_simple_test("aBFu7ll_Uc_I");
    static STRUCT_IF_C aBFu7ll_Uc_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Uc_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_I");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_I.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_Uc_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_I, aBFu7ll_Uc_I)
//============================================================================



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



static void Test_aBFu7ll_Uc_L()
{
  {
    init_simple_test("aBFu7ll_Uc_L");
    static STRUCT_IF_C aBFu7ll_Uc_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Uc_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_L");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_L.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_Uc_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_L, aBFu7ll_Uc_L)
//============================================================================



static void Test_aBFu7ll_Uc_S()
{
  {
    init_simple_test("aBFu7ll_Uc_S");
    static STRUCT_IF_C aBFu7ll_Uc_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Uc_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_S");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_S.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_Uc_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_S, aBFu7ll_Uc_S)
//============================================================================



static void Test_aBFu7ll_Uc_Uc()
{
  {
    init_simple_test("aBFu7ll_Uc_Uc");
    static STRUCT_IF_C aBFu7ll_Uc_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7ll_Uc_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_Uc");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_Uc.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_Uc_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_Uc, aBFu7ll_Uc_Uc)
//============================================================================



static void Test_aBFu7ll_Uc_Ui()
{
  {
    init_simple_test("aBFu7ll_Uc_Ui");
    static STRUCT_IF_C aBFu7ll_Uc_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Uc_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_Ui");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_Ui.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_Uc_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_Ui, aBFu7ll_Uc_Ui)
//============================================================================



static void Test_aBFu7ll_Uc_Ul()
{
  {
    init_simple_test("aBFu7ll_Uc_Ul");
    static STRUCT_IF_C aBFu7ll_Uc_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Uc_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_Ul");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_Ul.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_Uc_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_Ul, aBFu7ll_Uc_Ul)
//============================================================================



static void Test_aBFu7ll_Uc_Us()
{
  {
    init_simple_test("aBFu7ll_Uc_Us");
    static STRUCT_IF_C aBFu7ll_Uc_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Uc_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Uc_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Uc_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Uc_Us");
    check_field_offset(lv, v2, 1, "aBFu7ll_Uc_Us.v2");
    check_field_offset(lv, v3, 2, "aBFu7ll_Uc_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Uc_Us, aBFu7ll_Uc_Us)
//============================================================================



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



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



static void Test_aBFu7ll_Ui_BFu15i()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu15i");
    static STRUCT_IF_C aBFu7ll_Ui_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Ui_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu15i.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7ll_Ui_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7ll_Ui_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu15i, aBFu7ll_Ui_BFu15i)
//============================================================================



static void Test_aBFu7ll_Ui_BFu15ll()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu15ll");
    static STRUCT_IF_C aBFu7ll_Ui_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Ui_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu15ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7ll_Ui_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7ll_Ui_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu15ll, aBFu7ll_Ui_BFu15ll)
//============================================================================



static void Test_aBFu7ll_Ui_BFu15s()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu15s");
    static STRUCT_IF_C aBFu7ll_Ui_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Ui_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu15s.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7ll_Ui_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7ll_Ui_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu15s, aBFu7ll_Ui_BFu15s)
//============================================================================



static void Test_aBFu7ll_Ui_BFu16i()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu16i");
    static STRUCT_IF_C aBFu7ll_Ui_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Ui_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu16i.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7ll_Ui_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7ll_Ui_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu16i, aBFu7ll_Ui_BFu16i)
//============================================================================



static void Test_aBFu7ll_Ui_BFu16ll()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu16ll");
    static STRUCT_IF_C aBFu7ll_Ui_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Ui_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu16ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7ll_Ui_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7ll_Ui_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu16ll, aBFu7ll_Ui_BFu16ll)
//============================================================================



static void Test_aBFu7ll_Ui_BFu16s()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu16s");
    static STRUCT_IF_C aBFu7ll_Ui_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Ui_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu16s.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7ll_Ui_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7ll_Ui_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu16s, aBFu7ll_Ui_BFu16s)
//============================================================================



static void Test_aBFu7ll_Ui_BFu17i()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu17i");
    static STRUCT_IF_C aBFu7ll_Ui_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7ll_Ui_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu17i.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu7ll_Ui_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu7ll_Ui_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu17i, aBFu7ll_Ui_BFu17i)
//============================================================================



static void Test_aBFu7ll_Ui_BFu17ll()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu17ll");
    static STRUCT_IF_C aBFu7ll_Ui_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7ll_Ui_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu17ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu7ll_Ui_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu7ll_Ui_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu17ll, aBFu7ll_Ui_BFu17ll)
//============================================================================



static void Test_aBFu7ll_Ui_BFu1c()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu1c");
    static STRUCT_IF_C aBFu7ll_Ui_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Ui_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu1c.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7ll_Ui_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu1c, aBFu7ll_Ui_BFu1c)
//============================================================================



static void Test_aBFu7ll_Ui_BFu1i()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu1i");
    static STRUCT_IF_C aBFu7ll_Ui_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Ui_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu1i.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7ll_Ui_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu1i, aBFu7ll_Ui_BFu1i)
//============================================================================



static void Test_aBFu7ll_Ui_BFu1ll()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu1ll");
    static STRUCT_IF_C aBFu7ll_Ui_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Ui_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu1ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7ll_Ui_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu1ll, aBFu7ll_Ui_BFu1ll)
//============================================================================



static void Test_aBFu7ll_Ui_BFu1s()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu1s");
    static STRUCT_IF_C aBFu7ll_Ui_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Ui_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu1s.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7ll_Ui_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu1s, aBFu7ll_Ui_BFu1s)
//============================================================================



static void Test_aBFu7ll_Ui_BFu31i()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu31i");
    static STRUCT_IF_C aBFu7ll_Ui_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_Ui_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu31i.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu7ll_Ui_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu7ll_Ui_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu31i, aBFu7ll_Ui_BFu31i)
//============================================================================



static void Test_aBFu7ll_Ui_BFu31ll()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu31ll");
    static STRUCT_IF_C aBFu7ll_Ui_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_Ui_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu31ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu7ll_Ui_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu7ll_Ui_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu31ll, aBFu7ll_Ui_BFu31ll)
//============================================================================



static void Test_aBFu7ll_Ui_BFu32i()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu32i");
    static STRUCT_IF_C aBFu7ll_Ui_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_Ui_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu32i.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu7ll_Ui_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu7ll_Ui_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu32i, aBFu7ll_Ui_BFu32i)
//============================================================================



static void Test_aBFu7ll_Ui_BFu32ll()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu32ll");
    static STRUCT_IF_C aBFu7ll_Ui_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_Ui_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu32ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu7ll_Ui_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu7ll_Ui_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu32ll, aBFu7ll_Ui_BFu32ll)
//============================================================================



static void Test_aBFu7ll_Ui_BFu33()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu33");
    static STRUCT_IF_C aBFu7ll_Ui_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Ui_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu33.v2");
    set_bf_and_test(lv, v3, 5, 0, 33, 1, "aBFu7ll_Ui_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, hide_ull(1LL<<32), "aBFu7ll_Ui_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu33, aBFu7ll_Ui_BFu33)
//============================================================================



static void Test_aBFu7ll_Ui_BFu7c()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu7c");
    static STRUCT_IF_C aBFu7ll_Ui_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Ui_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu7c.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7ll_Ui_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu7c, aBFu7ll_Ui_BFu7c)
//============================================================================



static void Test_aBFu7ll_Ui_BFu7i()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu7i");
    static STRUCT_IF_C aBFu7ll_Ui_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Ui_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu7i.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7ll_Ui_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu7i, aBFu7ll_Ui_BFu7i)
//============================================================================



static void Test_aBFu7ll_Ui_BFu7ll()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu7ll");
    static STRUCT_IF_C aBFu7ll_Ui_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Ui_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu7ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7ll_Ui_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu7ll, aBFu7ll_Ui_BFu7ll)
//============================================================================



static void Test_aBFu7ll_Ui_BFu7s()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu7s");
    static STRUCT_IF_C aBFu7ll_Ui_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Ui_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu7s.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7ll_Ui_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu7s, aBFu7ll_Ui_BFu7s)
//============================================================================



static void Test_aBFu7ll_Ui_BFu8c()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu8c");
    static STRUCT_IF_C aBFu7ll_Ui_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Ui_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu8c.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7ll_Ui_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7ll_Ui_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu8c, aBFu7ll_Ui_BFu8c)
//============================================================================



static void Test_aBFu7ll_Ui_BFu8i()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu8i");
    static STRUCT_IF_C aBFu7ll_Ui_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Ui_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu8i.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7ll_Ui_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7ll_Ui_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu8i, aBFu7ll_Ui_BFu8i)
//============================================================================



static void Test_aBFu7ll_Ui_BFu8ll()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu8ll");
    static STRUCT_IF_C aBFu7ll_Ui_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Ui_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu8ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7ll_Ui_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7ll_Ui_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu8ll, aBFu7ll_Ui_BFu8ll)
//============================================================================



static void Test_aBFu7ll_Ui_BFu8s()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu8s");
    static STRUCT_IF_C aBFu7ll_Ui_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Ui_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu8s.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7ll_Ui_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7ll_Ui_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu8s, aBFu7ll_Ui_BFu8s)
//============================================================================



static void Test_aBFu7ll_Ui_BFu9i()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu9i");
    static STRUCT_IF_C aBFu7ll_Ui_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Ui_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu9i.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7ll_Ui_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7ll_Ui_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu9i, aBFu7ll_Ui_BFu9i)
//============================================================================



static void Test_aBFu7ll_Ui_BFu9ll()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu9ll");
    static STRUCT_IF_C aBFu7ll_Ui_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Ui_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu9ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7ll_Ui_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7ll_Ui_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu9ll, aBFu7ll_Ui_BFu9ll)
//============================================================================



static void Test_aBFu7ll_Ui_BFu9s()
{
  {
    init_simple_test("aBFu7ll_Ui_BFu9s");
    static STRUCT_IF_C aBFu7ll_Ui_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Ui_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_BFu9s.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7ll_Ui_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7ll_Ui_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_BFu9s, aBFu7ll_Ui_BFu9s)
//============================================================================



static void Test_aBFu7ll_Ui_C()
{
  {
    init_simple_test("aBFu7ll_Ui_C");
    static STRUCT_IF_C aBFu7ll_Ui_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Ui_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_C");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_C.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_Ui_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_C, aBFu7ll_Ui_C)
//============================================================================



static void Test_aBFu7ll_Ui_D()
{
  {
    init_simple_test("aBFu7ll_Ui_D");
    static STRUCT_IF_C aBFu7ll_Ui_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_Ui_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_D");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_D.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_Ui_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_D, aBFu7ll_Ui_D)
//============================================================================



static void Test_aBFu7ll_Ui_F()
{
  {
    init_simple_test("aBFu7ll_Ui_F");
    static STRUCT_IF_C aBFu7ll_Ui_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_Ui_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_F");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_F.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_Ui_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_F, aBFu7ll_Ui_F)
//============================================================================



static void Test_aBFu7ll_Ui_I()
{
  {
    init_simple_test("aBFu7ll_Ui_I");
    static STRUCT_IF_C aBFu7ll_Ui_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_Ui_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_I");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_I.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_Ui_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_I, aBFu7ll_Ui_I)
//============================================================================



static void Test_aBFu7ll_Ui_Ip()
{
  {
    init_simple_test("aBFu7ll_Ui_Ip");
    static STRUCT_IF_C aBFu7ll_Ui_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_Ui_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_Ip");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_Ip.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_Ui_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_Ip, aBFu7ll_Ui_Ip)
//============================================================================



static void Test_aBFu7ll_Ui_L()
{
  {
    init_simple_test("aBFu7ll_Ui_L");
    static STRUCT_IF_C aBFu7ll_Ui_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_Ui_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_L");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_L.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_Ui_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_L, aBFu7ll_Ui_L)
//============================================================================



static void Test_aBFu7ll_Ui_S()
{
  {
    init_simple_test("aBFu7ll_Ui_S");
    static STRUCT_IF_C aBFu7ll_Ui_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Ui_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_S");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_S.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_Ui_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_S, aBFu7ll_Ui_S)
//============================================================================



static void Test_aBFu7ll_Ui_Uc()
{
  {
    init_simple_test("aBFu7ll_Ui_Uc");
    static STRUCT_IF_C aBFu7ll_Ui_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7ll_Ui_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_Uc");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_Uc.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_Ui_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_Uc, aBFu7ll_Ui_Uc)
//============================================================================



static void Test_aBFu7ll_Ui_Ui()
{
  {
    init_simple_test("aBFu7ll_Ui_Ui");
    static STRUCT_IF_C aBFu7ll_Ui_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7ll_Ui_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_Ui");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_Ui.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_Ui_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_Ui, aBFu7ll_Ui_Ui)
//============================================================================



static void Test_aBFu7ll_Ui_Ul()
{
  {
    init_simple_test("aBFu7ll_Ui_Ul");
    static STRUCT_IF_C aBFu7ll_Ui_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_Ui_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_Ul");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_Ul.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_Ui_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_Ul, aBFu7ll_Ui_Ul)
//============================================================================



static void Test_aBFu7ll_Ui_Us()
{
  {
    init_simple_test("aBFu7ll_Ui_Us");
    static STRUCT_IF_C aBFu7ll_Ui_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Ui_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_Us");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_Us.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_Ui_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_Us, aBFu7ll_Ui_Us)
//============================================================================



static void Test_aBFu7ll_Ui_Vp()
{
  {
    init_simple_test("aBFu7ll_Ui_Vp");
    static STRUCT_IF_C aBFu7ll_Ui_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_Ui_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ui_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ui_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ui_Vp");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ui_Vp.v2");
    check_field_offset(lv, v3, 5, "aBFu7ll_Ui_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ui_Vp, aBFu7ll_Ui_Vp)
//============================================================================



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



static void Test_aBFu7ll_Ul_BFu15i()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu15i");
    static STRUCT_IF_C aBFu7ll_Ul_BFu15i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_Ul_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu15i.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7ll_Ul_BFu15i");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7ll_Ul_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu15i, aBFu7ll_Ul_BFu15i)
//============================================================================



static void Test_aBFu7ll_Ul_BFu15ll()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu15ll");
    static STRUCT_IF_C aBFu7ll_Ul_BFu15ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_Ul_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu15ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7ll_Ul_BFu15ll");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7ll_Ul_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu15ll, aBFu7ll_Ul_BFu15ll)
//============================================================================



static void Test_aBFu7ll_Ul_BFu15s()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu15s");
    static STRUCT_IF_C aBFu7ll_Ul_BFu15s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_Ul_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu15s.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7ll_Ul_BFu15s");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7ll_Ul_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu15s, aBFu7ll_Ul_BFu15s)
//============================================================================



static void Test_aBFu7ll_Ul_BFu16i()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu16i");
    static STRUCT_IF_C aBFu7ll_Ul_BFu16i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_Ul_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu16i.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7ll_Ul_BFu16i");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7ll_Ul_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu16i, aBFu7ll_Ul_BFu16i)
//============================================================================



static void Test_aBFu7ll_Ul_BFu16ll()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu16ll");
    static STRUCT_IF_C aBFu7ll_Ul_BFu16ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_Ul_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu16ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7ll_Ul_BFu16ll");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7ll_Ul_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu16ll, aBFu7ll_Ul_BFu16ll)
//============================================================================



static void Test_aBFu7ll_Ul_BFu16s()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu16s");
    static STRUCT_IF_C aBFu7ll_Ul_BFu16s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_Ul_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu16s.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7ll_Ul_BFu16s");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7ll_Ul_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu16s, aBFu7ll_Ul_BFu16s)
//============================================================================



static void Test_aBFu7ll_Ul_BFu17i()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu17i");
    static STRUCT_IF_C aBFu7ll_Ul_BFu17i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu7ll_Ul_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu17i.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu7ll_Ul_BFu17i");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu7ll_Ul_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu17i, aBFu7ll_Ul_BFu17i)
//============================================================================



static void Test_aBFu7ll_Ul_BFu17ll()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu17ll");
    static STRUCT_IF_C aBFu7ll_Ul_BFu17ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu7ll_Ul_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu17ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu7ll_Ul_BFu17ll");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu7ll_Ul_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu17ll, aBFu7ll_Ul_BFu17ll)
//============================================================================



static void Test_aBFu7ll_Ul_BFu1c()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu1c");
    static STRUCT_IF_C aBFu7ll_Ul_BFu1c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Ul_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu1c.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7ll_Ul_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu1c, aBFu7ll_Ul_BFu1c)
//============================================================================



static void Test_aBFu7ll_Ul_BFu1i()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu1i");
    static STRUCT_IF_C aBFu7ll_Ul_BFu1i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Ul_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu1i.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7ll_Ul_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu1i, aBFu7ll_Ul_BFu1i)
//============================================================================



static void Test_aBFu7ll_Ul_BFu1ll()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu1ll");
    static STRUCT_IF_C aBFu7ll_Ul_BFu1ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Ul_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu1ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7ll_Ul_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu1ll, aBFu7ll_Ul_BFu1ll)
//============================================================================



static void Test_aBFu7ll_Ul_BFu1s()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu1s");
    static STRUCT_IF_C aBFu7ll_Ul_BFu1s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Ul_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu1s.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7ll_Ul_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu1s, aBFu7ll_Ul_BFu1s)
//============================================================================



static void Test_aBFu7ll_Ul_BFu31i()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu31i");
    static STRUCT_IF_C aBFu7ll_Ul_BFu31i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_Ul_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu31i.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu7ll_Ul_BFu31i");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu7ll_Ul_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu31i, aBFu7ll_Ul_BFu31i)
//============================================================================



static void Test_aBFu7ll_Ul_BFu31ll()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu31ll");
    static STRUCT_IF_C aBFu7ll_Ul_BFu31ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_Ul_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu31ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu7ll_Ul_BFu31ll");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu7ll_Ul_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu31ll, aBFu7ll_Ul_BFu31ll)
//============================================================================



static void Test_aBFu7ll_Ul_BFu32i()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu32i");
    static STRUCT_IF_C aBFu7ll_Ul_BFu32i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_Ul_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu32i.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu7ll_Ul_BFu32i");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu7ll_Ul_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu32i, aBFu7ll_Ul_BFu32i)
//============================================================================



static void Test_aBFu7ll_Ul_BFu32ll()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu32ll");
    static STRUCT_IF_C aBFu7ll_Ul_BFu32ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_Ul_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu32ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu7ll_Ul_BFu32ll");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu7ll_Ul_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu32ll, aBFu7ll_Ul_BFu32ll)
//============================================================================



static void Test_aBFu7ll_Ul_BFu33()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu33");
    static STRUCT_IF_C aBFu7ll_Ul_BFu33 lv;
    check2(sizeof(lv), 14, "sizeof(aBFu7ll_Ul_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu33.v2");
    set_bf_and_test(lv, v3, 9, 0, 33, 1, "aBFu7ll_Ul_BFu33");
    set_bf_and_test(lv, v3, 9, 0, 33, hide_ull(1LL<<32), "aBFu7ll_Ul_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu33, aBFu7ll_Ul_BFu33)
//============================================================================



static void Test_aBFu7ll_Ul_BFu7c()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu7c");
    static STRUCT_IF_C aBFu7ll_Ul_BFu7c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Ul_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu7c.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7ll_Ul_BFu7c");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu7c, aBFu7ll_Ul_BFu7c)
//============================================================================



static void Test_aBFu7ll_Ul_BFu7i()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu7i");
    static STRUCT_IF_C aBFu7ll_Ul_BFu7i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Ul_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu7i.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7ll_Ul_BFu7i");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu7i, aBFu7ll_Ul_BFu7i)
//============================================================================



static void Test_aBFu7ll_Ul_BFu7ll()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu7ll");
    static STRUCT_IF_C aBFu7ll_Ul_BFu7ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Ul_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu7ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7ll_Ul_BFu7ll");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu7ll, aBFu7ll_Ul_BFu7ll)
//============================================================================



static void Test_aBFu7ll_Ul_BFu7s()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu7s");
    static STRUCT_IF_C aBFu7ll_Ul_BFu7s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Ul_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu7s.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7ll_Ul_BFu7s");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu7s, aBFu7ll_Ul_BFu7s)
//============================================================================



static void Test_aBFu7ll_Ul_BFu8c()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu8c");
    static STRUCT_IF_C aBFu7ll_Ul_BFu8c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Ul_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu8c.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7ll_Ul_BFu8c");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7ll_Ul_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu8c, aBFu7ll_Ul_BFu8c)
//============================================================================



static void Test_aBFu7ll_Ul_BFu8i()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu8i");
    static STRUCT_IF_C aBFu7ll_Ul_BFu8i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Ul_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu8i.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7ll_Ul_BFu8i");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7ll_Ul_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu8i, aBFu7ll_Ul_BFu8i)
//============================================================================



static void Test_aBFu7ll_Ul_BFu8ll()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu8ll");
    static STRUCT_IF_C aBFu7ll_Ul_BFu8ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Ul_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu8ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7ll_Ul_BFu8ll");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7ll_Ul_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu8ll, aBFu7ll_Ul_BFu8ll)
//============================================================================



static void Test_aBFu7ll_Ul_BFu8s()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu8s");
    static STRUCT_IF_C aBFu7ll_Ul_BFu8s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Ul_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu8s.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7ll_Ul_BFu8s");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7ll_Ul_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu8s, aBFu7ll_Ul_BFu8s)
//============================================================================



static void Test_aBFu7ll_Ul_BFu9i()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu9i");
    static STRUCT_IF_C aBFu7ll_Ul_BFu9i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_Ul_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu9i.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7ll_Ul_BFu9i");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7ll_Ul_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu9i, aBFu7ll_Ul_BFu9i)
//============================================================================



static void Test_aBFu7ll_Ul_BFu9ll()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu9ll");
    static STRUCT_IF_C aBFu7ll_Ul_BFu9ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_Ul_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu9ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7ll_Ul_BFu9ll");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7ll_Ul_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu9ll, aBFu7ll_Ul_BFu9ll)
//============================================================================



static void Test_aBFu7ll_Ul_BFu9s()
{
  {
    init_simple_test("aBFu7ll_Ul_BFu9s");
    static STRUCT_IF_C aBFu7ll_Ul_BFu9s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_Ul_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_BFu9s.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7ll_Ul_BFu9s");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7ll_Ul_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_BFu9s, aBFu7ll_Ul_BFu9s)
//============================================================================



static void Test_aBFu7ll_Ul_C()
{
  {
    init_simple_test("aBFu7ll_Ul_C");
    static STRUCT_IF_C aBFu7ll_Ul_C lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Ul_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_C");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_C.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_Ul_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_C, aBFu7ll_Ul_C)
//============================================================================



static void Test_aBFu7ll_Ul_D()
{
  {
    init_simple_test("aBFu7ll_Ul_D");
    static STRUCT_IF_C aBFu7ll_Ul_D lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7ll_Ul_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_D");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_D.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_Ul_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_D, aBFu7ll_Ul_D)
//============================================================================



static void Test_aBFu7ll_Ul_F()
{
  {
    init_simple_test("aBFu7ll_Ul_F");
    static STRUCT_IF_C aBFu7ll_Ul_F lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_Ul_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_F");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_F.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_Ul_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_F, aBFu7ll_Ul_F)
//============================================================================



static void Test_aBFu7ll_Ul_I()
{
  {
    init_simple_test("aBFu7ll_Ul_I");
    static STRUCT_IF_C aBFu7ll_Ul_I lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_Ul_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_I");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_I.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_Ul_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_I, aBFu7ll_Ul_I)
//============================================================================



static void Test_aBFu7ll_Ul_Ip()
{
  {
    init_simple_test("aBFu7ll_Ul_Ip");
    static STRUCT_IF_C aBFu7ll_Ul_Ip lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7ll_Ul_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_Ip");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_Ip.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_Ul_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_Ip, aBFu7ll_Ul_Ip)
//============================================================================



static void Test_aBFu7ll_Ul_L()
{
  {
    init_simple_test("aBFu7ll_Ul_L");
    static STRUCT_IF_C aBFu7ll_Ul_L lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7ll_Ul_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_L");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_L.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_Ul_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_L, aBFu7ll_Ul_L)
//============================================================================



static void Test_aBFu7ll_Ul_S()
{
  {
    init_simple_test("aBFu7ll_Ul_S");
    static STRUCT_IF_C aBFu7ll_Ul_S lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_Ul_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_S");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_S.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_Ul_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_S, aBFu7ll_Ul_S)
//============================================================================



static void Test_aBFu7ll_Ul_Uc()
{
  {
    init_simple_test("aBFu7ll_Ul_Uc");
    static STRUCT_IF_C aBFu7ll_Ul_Uc lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7ll_Ul_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_Uc");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_Uc.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_Ul_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_Uc, aBFu7ll_Ul_Uc)
//============================================================================



static void Test_aBFu7ll_Ul_Ui()
{
  {
    init_simple_test("aBFu7ll_Ul_Ui");
    static STRUCT_IF_C aBFu7ll_Ul_Ui lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7ll_Ul_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_Ui");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_Ui.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_Ul_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_Ui, aBFu7ll_Ul_Ui)
//============================================================================



static void Test_aBFu7ll_Ul_Ul()
{
  {
    init_simple_test("aBFu7ll_Ul_Ul");
    static STRUCT_IF_C aBFu7ll_Ul_Ul lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7ll_Ul_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_Ul");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_Ul.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_Ul_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_Ul, aBFu7ll_Ul_Ul)
//============================================================================



static void Test_aBFu7ll_Ul_Us()
{
  {
    init_simple_test("aBFu7ll_Ul_Us");
    static STRUCT_IF_C aBFu7ll_Ul_Us lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_Ul_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_Us");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_Us.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_Ul_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_Us, aBFu7ll_Ul_Us)
//============================================================================



static void Test_aBFu7ll_Ul_Vp()
{
  {
    init_simple_test("aBFu7ll_Ul_Vp");
    static STRUCT_IF_C aBFu7ll_Ul_Vp lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7ll_Ul_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Ul_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Ul_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Ul_Vp");
    check_field_offset(lv, v2, 1, "aBFu7ll_Ul_Vp.v2");
    check_field_offset(lv, v3, 9, "aBFu7ll_Ul_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Ul_Vp, aBFu7ll_Ul_Vp)
//============================================================================



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



static void Test_aBFu7ll_Us_BFu15i()
{
  {
    init_simple_test("aBFu7ll_Us_BFu15i");
    static STRUCT_IF_C aBFu7ll_Us_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_Us_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu15i.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7ll_Us_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7ll_Us_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu15i, aBFu7ll_Us_BFu15i)
//============================================================================



static void Test_aBFu7ll_Us_BFu15ll()
{
  {
    init_simple_test("aBFu7ll_Us_BFu15ll");
    static STRUCT_IF_C aBFu7ll_Us_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_Us_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu15ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7ll_Us_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7ll_Us_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu15ll, aBFu7ll_Us_BFu15ll)
//============================================================================



static void Test_aBFu7ll_Us_BFu15s()
{
  {
    init_simple_test("aBFu7ll_Us_BFu15s");
    static STRUCT_IF_C aBFu7ll_Us_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_Us_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu15s.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7ll_Us_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7ll_Us_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu15s, aBFu7ll_Us_BFu15s)
//============================================================================



static void Test_aBFu7ll_Us_BFu16i()
{
  {
    init_simple_test("aBFu7ll_Us_BFu16i");
    static STRUCT_IF_C aBFu7ll_Us_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_Us_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu16i.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7ll_Us_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7ll_Us_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu16i, aBFu7ll_Us_BFu16i)
//============================================================================



static void Test_aBFu7ll_Us_BFu16ll()
{
  {
    init_simple_test("aBFu7ll_Us_BFu16ll");
    static STRUCT_IF_C aBFu7ll_Us_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_Us_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu16ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7ll_Us_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7ll_Us_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu16ll, aBFu7ll_Us_BFu16ll)
//============================================================================



static void Test_aBFu7ll_Us_BFu16s()
{
  {
    init_simple_test("aBFu7ll_Us_BFu16s");
    static STRUCT_IF_C aBFu7ll_Us_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_Us_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu16s.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7ll_Us_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7ll_Us_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu16s, aBFu7ll_Us_BFu16s)
//============================================================================



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



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



static void Test_aBFu7ll_Us_BFu1c()
{
  {
    init_simple_test("aBFu7ll_Us_BFu1c");
    static STRUCT_IF_C aBFu7ll_Us_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Us_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu1c.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "aBFu7ll_Us_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu1c, aBFu7ll_Us_BFu1c)
//============================================================================



static void Test_aBFu7ll_Us_BFu1i()
{
  {
    init_simple_test("aBFu7ll_Us_BFu1i");
    static STRUCT_IF_C aBFu7ll_Us_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Us_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu1i.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "aBFu7ll_Us_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu1i, aBFu7ll_Us_BFu1i)
//============================================================================



static void Test_aBFu7ll_Us_BFu1ll()
{
  {
    init_simple_test("aBFu7ll_Us_BFu1ll");
    static STRUCT_IF_C aBFu7ll_Us_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Us_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu1ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "aBFu7ll_Us_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu1ll, aBFu7ll_Us_BFu1ll)
//============================================================================



static void Test_aBFu7ll_Us_BFu1s()
{
  {
    init_simple_test("aBFu7ll_Us_BFu1s");
    static STRUCT_IF_C aBFu7ll_Us_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Us_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu1s.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "aBFu7ll_Us_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu1s, aBFu7ll_Us_BFu1s)
//============================================================================



static void Test_aBFu7ll_Us_BFu31i()
{
  {
    init_simple_test("aBFu7ll_Us_BFu31i");
    static STRUCT_IF_C aBFu7ll_Us_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Us_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu31i.v2");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "aBFu7ll_Us_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "aBFu7ll_Us_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu31i, aBFu7ll_Us_BFu31i)
//============================================================================



static void Test_aBFu7ll_Us_BFu31ll()
{
  {
    init_simple_test("aBFu7ll_Us_BFu31ll");
    static STRUCT_IF_C aBFu7ll_Us_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Us_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu31ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "aBFu7ll_Us_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "aBFu7ll_Us_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu31ll, aBFu7ll_Us_BFu31ll)
//============================================================================



static void Test_aBFu7ll_Us_BFu32i()
{
  {
    init_simple_test("aBFu7ll_Us_BFu32i");
    static STRUCT_IF_C aBFu7ll_Us_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Us_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu32i.v2");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "aBFu7ll_Us_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "aBFu7ll_Us_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu32i, aBFu7ll_Us_BFu32i)
//============================================================================



static void Test_aBFu7ll_Us_BFu32ll()
{
  {
    init_simple_test("aBFu7ll_Us_BFu32ll");
    static STRUCT_IF_C aBFu7ll_Us_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Us_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu32ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "aBFu7ll_Us_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "aBFu7ll_Us_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu32ll, aBFu7ll_Us_BFu32ll)
//============================================================================



static void Test_aBFu7ll_Us_BFu33()
{
  {
    init_simple_test("aBFu7ll_Us_BFu33");
    static STRUCT_IF_C aBFu7ll_Us_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7ll_Us_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu33.v2");
    set_bf_and_test(lv, v3, 3, 0, 33, 1, "aBFu7ll_Us_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, hide_ull(1LL<<32), "aBFu7ll_Us_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu33, aBFu7ll_Us_BFu33)
//============================================================================



static void Test_aBFu7ll_Us_BFu7c()
{
  {
    init_simple_test("aBFu7ll_Us_BFu7c");
    static STRUCT_IF_C aBFu7ll_Us_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Us_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu7c.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "aBFu7ll_Us_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu7c, aBFu7ll_Us_BFu7c)
//============================================================================



static void Test_aBFu7ll_Us_BFu7i()
{
  {
    init_simple_test("aBFu7ll_Us_BFu7i");
    static STRUCT_IF_C aBFu7ll_Us_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Us_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu7i.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "aBFu7ll_Us_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu7i, aBFu7ll_Us_BFu7i)
//============================================================================



static void Test_aBFu7ll_Us_BFu7ll()
{
  {
    init_simple_test("aBFu7ll_Us_BFu7ll");
    static STRUCT_IF_C aBFu7ll_Us_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Us_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu7ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "aBFu7ll_Us_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu7ll, aBFu7ll_Us_BFu7ll)
//============================================================================



static void Test_aBFu7ll_Us_BFu7s()
{
  {
    init_simple_test("aBFu7ll_Us_BFu7s");
    static STRUCT_IF_C aBFu7ll_Us_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Us_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu7s.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "aBFu7ll_Us_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu7s, aBFu7ll_Us_BFu7s)
//============================================================================



static void Test_aBFu7ll_Us_BFu8c()
{
  {
    init_simple_test("aBFu7ll_Us_BFu8c");
    static STRUCT_IF_C aBFu7ll_Us_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Us_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu8c.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7ll_Us_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7ll_Us_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu8c, aBFu7ll_Us_BFu8c)
//============================================================================



static void Test_aBFu7ll_Us_BFu8i()
{
  {
    init_simple_test("aBFu7ll_Us_BFu8i");
    static STRUCT_IF_C aBFu7ll_Us_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Us_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu8i.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7ll_Us_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7ll_Us_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu8i, aBFu7ll_Us_BFu8i)
//============================================================================



static void Test_aBFu7ll_Us_BFu8ll()
{
  {
    init_simple_test("aBFu7ll_Us_BFu8ll");
    static STRUCT_IF_C aBFu7ll_Us_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Us_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu8ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7ll_Us_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7ll_Us_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu8ll, aBFu7ll_Us_BFu8ll)
//============================================================================



static void Test_aBFu7ll_Us_BFu8s()
{
  {
    init_simple_test("aBFu7ll_Us_BFu8s");
    static STRUCT_IF_C aBFu7ll_Us_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Us_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu8s.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7ll_Us_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7ll_Us_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu8s, aBFu7ll_Us_BFu8s)
//============================================================================



static void Test_aBFu7ll_Us_BFu9i()
{
  {
    init_simple_test("aBFu7ll_Us_BFu9i");
    static STRUCT_IF_C aBFu7ll_Us_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_Us_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu9i.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7ll_Us_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7ll_Us_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu9i, aBFu7ll_Us_BFu9i)
//============================================================================



static void Test_aBFu7ll_Us_BFu9ll()
{
  {
    init_simple_test("aBFu7ll_Us_BFu9ll");
    static STRUCT_IF_C aBFu7ll_Us_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_Us_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu9ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7ll_Us_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7ll_Us_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu9ll, aBFu7ll_Us_BFu9ll)
//============================================================================



static void Test_aBFu7ll_Us_BFu9s()
{
  {
    init_simple_test("aBFu7ll_Us_BFu9s");
    static STRUCT_IF_C aBFu7ll_Us_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_Us_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_BFu9s.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7ll_Us_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7ll_Us_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_BFu9s, aBFu7ll_Us_BFu9s)
//============================================================================



static void Test_aBFu7ll_Us_C()
{
  {
    init_simple_test("aBFu7ll_Us_C");
    static STRUCT_IF_C aBFu7ll_Us_C lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Us_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_C");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_C.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_Us_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_C, aBFu7ll_Us_C)
//============================================================================



static void Test_aBFu7ll_Us_D()
{
  {
    init_simple_test("aBFu7ll_Us_D");
    static STRUCT_IF_C aBFu7ll_Us_D lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_Us_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_D");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_D.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_Us_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_D, aBFu7ll_Us_D)
//============================================================================



static void Test_aBFu7ll_Us_F()
{
  {
    init_simple_test("aBFu7ll_Us_F");
    static STRUCT_IF_C aBFu7ll_Us_F lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Us_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_F");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_F.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_Us_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_F, aBFu7ll_Us_F)
//============================================================================



static void Test_aBFu7ll_Us_I()
{
  {
    init_simple_test("aBFu7ll_Us_I");
    static STRUCT_IF_C aBFu7ll_Us_I lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Us_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_I");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_I.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_Us_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_I, aBFu7ll_Us_I)
//============================================================================



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



static void Test_aBFu7ll_Us_L()
{
  {
    init_simple_test("aBFu7ll_Us_L");
    static STRUCT_IF_C aBFu7ll_Us_L lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_Us_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_L");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_L.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_Us_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_L, aBFu7ll_Us_L)
//============================================================================



static void Test_aBFu7ll_Us_S()
{
  {
    init_simple_test("aBFu7ll_Us_S");
    static STRUCT_IF_C aBFu7ll_Us_S lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_Us_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_S");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_S.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_Us_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_S, aBFu7ll_Us_S)
//============================================================================



static void Test_aBFu7ll_Us_Uc()
{
  {
    init_simple_test("aBFu7ll_Us_Uc");
    static STRUCT_IF_C aBFu7ll_Us_Uc lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7ll_Us_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_Uc");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_Uc.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_Us_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_Uc, aBFu7ll_Us_Uc)
//============================================================================



static void Test_aBFu7ll_Us_Ui()
{
  {
    init_simple_test("aBFu7ll_Us_Ui");
    static STRUCT_IF_C aBFu7ll_Us_Ui lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7ll_Us_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_Ui");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_Ui.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_Us_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_Ui, aBFu7ll_Us_Ui)
//============================================================================



static void Test_aBFu7ll_Us_Ul()
{
  {
    init_simple_test("aBFu7ll_Us_Ul");
    static STRUCT_IF_C aBFu7ll_Us_Ul lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7ll_Us_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_Ul");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_Ul.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_Us_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_Ul, aBFu7ll_Us_Ul)
//============================================================================



static void Test_aBFu7ll_Us_Us()
{
  {
    init_simple_test("aBFu7ll_Us_Us");
    static STRUCT_IF_C aBFu7ll_Us_Us lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7ll_Us_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Us_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Us_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Us_Us");
    check_field_offset(lv, v2, 1, "aBFu7ll_Us_Us.v2");
    check_field_offset(lv, v3, 3, "aBFu7ll_Us_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Us_Us, aBFu7ll_Us_Us)
//============================================================================



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



static void Test_aBFu7ll_Vp()
{
  {
    init_simple_test("aBFu7ll_Vp");
    static STRUCT_IF_C aBFu7ll_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu7ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp, aBFu7ll_Vp)
//============================================================================



static void Test_aBFu7ll_Vp_BFu15i()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu15i");
    static STRUCT_IF_C aBFu7ll_Vp_BFu15i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Vp_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu15i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "aBFu7ll_Vp_BFu15i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "aBFu7ll_Vp_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu15i, aBFu7ll_Vp_BFu15i)
//============================================================================



static void Test_aBFu7ll_Vp_BFu15ll()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu15ll");
    static STRUCT_IF_C aBFu7ll_Vp_BFu15ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Vp_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu15ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "aBFu7ll_Vp_BFu15ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "aBFu7ll_Vp_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu15ll, aBFu7ll_Vp_BFu15ll)
//============================================================================



static void Test_aBFu7ll_Vp_BFu15s()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu15s");
    static STRUCT_IF_C aBFu7ll_Vp_BFu15s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Vp_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu15s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "aBFu7ll_Vp_BFu15s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "aBFu7ll_Vp_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu15s, aBFu7ll_Vp_BFu15s)
//============================================================================



static void Test_aBFu7ll_Vp_BFu16i()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu16i");
    static STRUCT_IF_C aBFu7ll_Vp_BFu16i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Vp_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu16i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "aBFu7ll_Vp_BFu16i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "aBFu7ll_Vp_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu16i, aBFu7ll_Vp_BFu16i)
//============================================================================



static void Test_aBFu7ll_Vp_BFu16ll()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu16ll");
    static STRUCT_IF_C aBFu7ll_Vp_BFu16ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Vp_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu16ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "aBFu7ll_Vp_BFu16ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "aBFu7ll_Vp_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu16ll, aBFu7ll_Vp_BFu16ll)
//============================================================================



static void Test_aBFu7ll_Vp_BFu16s()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu16s");
    static STRUCT_IF_C aBFu7ll_Vp_BFu16s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Vp_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu16s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "aBFu7ll_Vp_BFu16s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "aBFu7ll_Vp_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu16s, aBFu7ll_Vp_BFu16s)
//============================================================================



static void Test_aBFu7ll_Vp_BFu17i()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu17i");
    static STRUCT_IF_C aBFu7ll_Vp_BFu17i lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu7ll_Vp_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu17i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, 1, "aBFu7ll_Vp_BFu17i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, hide_ull(1LL<<16), "aBFu7ll_Vp_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu17i, aBFu7ll_Vp_BFu17i)
//============================================================================



static void Test_aBFu7ll_Vp_BFu17ll()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu17ll");
    static STRUCT_IF_C aBFu7ll_Vp_BFu17ll lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu7ll_Vp_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu17ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, 1, "aBFu7ll_Vp_BFu17ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, hide_ull(1LL<<16), "aBFu7ll_Vp_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu17ll, aBFu7ll_Vp_BFu17ll)
//============================================================================



static void Test_aBFu7ll_Vp_BFu1c()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu1c");
    static STRUCT_IF_C aBFu7ll_Vp_BFu1c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Vp_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu1c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "aBFu7ll_Vp_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu1c, aBFu7ll_Vp_BFu1c)
//============================================================================



static void Test_aBFu7ll_Vp_BFu1i()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu1i");
    static STRUCT_IF_C aBFu7ll_Vp_BFu1i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Vp_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu1i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "aBFu7ll_Vp_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu1i, aBFu7ll_Vp_BFu1i)
//============================================================================



static void Test_aBFu7ll_Vp_BFu1ll()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu1ll");
    static STRUCT_IF_C aBFu7ll_Vp_BFu1ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Vp_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu1ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "aBFu7ll_Vp_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu1ll, aBFu7ll_Vp_BFu1ll)
//============================================================================



static void Test_aBFu7ll_Vp_BFu1s()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu1s");
    static STRUCT_IF_C aBFu7ll_Vp_BFu1s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Vp_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu1s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "aBFu7ll_Vp_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu1s, aBFu7ll_Vp_BFu1s)
//============================================================================



static void Test_aBFu7ll_Vp_BFu31i()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu31i");
    static STRUCT_IF_C aBFu7ll_Vp_BFu31i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_Vp_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu31i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, 1, "aBFu7ll_Vp_BFu31i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, hide_ull(1LL<<30), "aBFu7ll_Vp_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu31i, aBFu7ll_Vp_BFu31i)
//============================================================================



static void Test_aBFu7ll_Vp_BFu31ll()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu31ll");
    static STRUCT_IF_C aBFu7ll_Vp_BFu31ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_Vp_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu31ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, 1, "aBFu7ll_Vp_BFu31ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, hide_ull(1LL<<30), "aBFu7ll_Vp_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu31ll, aBFu7ll_Vp_BFu31ll)
//============================================================================



static void Test_aBFu7ll_Vp_BFu32i()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu32i");
    static STRUCT_IF_C aBFu7ll_Vp_BFu32i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_Vp_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu32i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, 1, "aBFu7ll_Vp_BFu32i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, hide_ull(1LL<<31), "aBFu7ll_Vp_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu32i, aBFu7ll_Vp_BFu32i)
//============================================================================



static void Test_aBFu7ll_Vp_BFu32ll()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu32ll");
    static STRUCT_IF_C aBFu7ll_Vp_BFu32ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_Vp_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu32ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, 1, "aBFu7ll_Vp_BFu32ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, hide_ull(1LL<<31), "aBFu7ll_Vp_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu32ll, aBFu7ll_Vp_BFu32ll)
//============================================================================



static void Test_aBFu7ll_Vp_BFu33()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu33");
    static STRUCT_IF_C aBFu7ll_Vp_BFu33 lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu7ll_Vp_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu33.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 33, 1, "aBFu7ll_Vp_BFu33");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 33, hide_ull(1LL<<32), "aBFu7ll_Vp_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu33, aBFu7ll_Vp_BFu33)
//============================================================================



static void Test_aBFu7ll_Vp_BFu7c()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu7c");
    static STRUCT_IF_C aBFu7ll_Vp_BFu7c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Vp_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu7c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "aBFu7ll_Vp_BFu7c");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu7c, aBFu7ll_Vp_BFu7c)
//============================================================================



static void Test_aBFu7ll_Vp_BFu7i()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu7i");
    static STRUCT_IF_C aBFu7ll_Vp_BFu7i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Vp_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu7i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "aBFu7ll_Vp_BFu7i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu7i, aBFu7ll_Vp_BFu7i)
//============================================================================



static void Test_aBFu7ll_Vp_BFu7ll()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu7ll");
    static STRUCT_IF_C aBFu7ll_Vp_BFu7ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Vp_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu7ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "aBFu7ll_Vp_BFu7ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu7ll, aBFu7ll_Vp_BFu7ll)
//============================================================================



static void Test_aBFu7ll_Vp_BFu7s()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu7s");
    static STRUCT_IF_C aBFu7ll_Vp_BFu7s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Vp_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu7s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "aBFu7ll_Vp_BFu7s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu7s, aBFu7ll_Vp_BFu7s)
//============================================================================



static void Test_aBFu7ll_Vp_BFu8c()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu8c");
    static STRUCT_IF_C aBFu7ll_Vp_BFu8c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Vp_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu8c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "aBFu7ll_Vp_BFu8c");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "aBFu7ll_Vp_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu8c, aBFu7ll_Vp_BFu8c)
//============================================================================



static void Test_aBFu7ll_Vp_BFu8i()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu8i");
    static STRUCT_IF_C aBFu7ll_Vp_BFu8i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Vp_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu8i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "aBFu7ll_Vp_BFu8i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "aBFu7ll_Vp_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu8i, aBFu7ll_Vp_BFu8i)
//============================================================================



static void Test_aBFu7ll_Vp_BFu8ll()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu8ll");
    static STRUCT_IF_C aBFu7ll_Vp_BFu8ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Vp_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu8ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "aBFu7ll_Vp_BFu8ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "aBFu7ll_Vp_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu8ll, aBFu7ll_Vp_BFu8ll)
//============================================================================



static void Test_aBFu7ll_Vp_BFu8s()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu8s");
    static STRUCT_IF_C aBFu7ll_Vp_BFu8s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Vp_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu8s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "aBFu7ll_Vp_BFu8s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "aBFu7ll_Vp_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu8s, aBFu7ll_Vp_BFu8s)
//============================================================================



static void Test_aBFu7ll_Vp_BFu9i()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu9i");
    static STRUCT_IF_C aBFu7ll_Vp_BFu9i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Vp_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu9i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "aBFu7ll_Vp_BFu9i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "aBFu7ll_Vp_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu9i, aBFu7ll_Vp_BFu9i)
//============================================================================



static void Test_aBFu7ll_Vp_BFu9ll()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu9ll");
    static STRUCT_IF_C aBFu7ll_Vp_BFu9ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Vp_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu9ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "aBFu7ll_Vp_BFu9ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "aBFu7ll_Vp_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu9ll, aBFu7ll_Vp_BFu9ll)
//============================================================================



static void Test_aBFu7ll_Vp_BFu9s()
{
  {
    init_simple_test("aBFu7ll_Vp_BFu9s");
    static STRUCT_IF_C aBFu7ll_Vp_BFu9s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Vp_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_BFu9s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "aBFu7ll_Vp_BFu9s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "aBFu7ll_Vp_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_BFu9s, aBFu7ll_Vp_BFu9s)
//============================================================================



static void Test_aBFu7ll_Vp_C()
{
  {
    init_simple_test("aBFu7ll_Vp_C");
    static STRUCT_IF_C aBFu7ll_Vp_C lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Vp_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_C");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_C.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Vp_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_C, aBFu7ll_Vp_C)
//============================================================================



static void Test_aBFu7ll_Vp_D()
{
  {
    init_simple_test("aBFu7ll_Vp_D");
    static STRUCT_IF_C aBFu7ll_Vp_D lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7ll_Vp_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_D");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_D.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Vp_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_D, aBFu7ll_Vp_D)
//============================================================================



static void Test_aBFu7ll_Vp_F()
{
  {
    init_simple_test("aBFu7ll_Vp_F");
    static STRUCT_IF_C aBFu7ll_Vp_F lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_Vp_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_F");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_F.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Vp_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_F, aBFu7ll_Vp_F)
//============================================================================



static void Test_aBFu7ll_Vp_I()
{
  {
    init_simple_test("aBFu7ll_Vp_I");
    static STRUCT_IF_C aBFu7ll_Vp_I lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_Vp_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_I");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_I.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Vp_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_I, aBFu7ll_Vp_I)
//============================================================================



static void Test_aBFu7ll_Vp_Ip()
{
  {
    init_simple_test("aBFu7ll_Vp_Ip");
    static STRUCT_IF_C aBFu7ll_Vp_Ip lv;
    check2(sizeof(lv), ABISELECT(17,9), "sizeof(aBFu7ll_Vp_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_Ip");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_Ip.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Vp_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_Ip, aBFu7ll_Vp_Ip)
//============================================================================



static void Test_aBFu7ll_Vp_L()
{
  {
    init_simple_test("aBFu7ll_Vp_L");
    static STRUCT_IF_C aBFu7ll_Vp_L lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7ll_Vp_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_L");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_L.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Vp_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_L, aBFu7ll_Vp_L)
//============================================================================



static void Test_aBFu7ll_Vp_S()
{
  {
    init_simple_test("aBFu7ll_Vp_S");
    static STRUCT_IF_C aBFu7ll_Vp_S lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Vp_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_S");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_S.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Vp_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_S, aBFu7ll_Vp_S)
//============================================================================



static void Test_aBFu7ll_Vp_Uc()
{
  {
    init_simple_test("aBFu7ll_Vp_Uc");
    static STRUCT_IF_C aBFu7ll_Vp_Uc lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7ll_Vp_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_Uc");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_Uc.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Vp_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_Uc, aBFu7ll_Vp_Uc)
//============================================================================



static void Test_aBFu7ll_Vp_Ui()
{
  {
    init_simple_test("aBFu7ll_Vp_Ui");
    static STRUCT_IF_C aBFu7ll_Vp_Ui lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7ll_Vp_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_Ui");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_Ui.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Vp_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_Ui, aBFu7ll_Vp_Ui)
//============================================================================



static void Test_aBFu7ll_Vp_Ul()
{
  {
    init_simple_test("aBFu7ll_Vp_Ul");
    static STRUCT_IF_C aBFu7ll_Vp_Ul lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7ll_Vp_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_Ul");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_Ul.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Vp_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_Ul, aBFu7ll_Vp_Ul)
//============================================================================



static void Test_aBFu7ll_Vp_Us()
{
  {
    init_simple_test("aBFu7ll_Vp_Us");
    static STRUCT_IF_C aBFu7ll_Vp_Us lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7ll_Vp_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_Us");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_Us.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Vp_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_Us, aBFu7ll_Vp_Us)
//============================================================================



static void Test_aBFu7ll_Vp_Vp()
{
  {
    init_simple_test("aBFu7ll_Vp_Vp");
    static STRUCT_IF_C aBFu7ll_Vp_Vp lv;
    check2(sizeof(lv), ABISELECT(17,9), "sizeof(aBFu7ll_Vp_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7ll_Vp_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7ll_Vp_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7ll_Vp_Vp");
    check_field_offset(lv, v2, 1, "aBFu7ll_Vp_Vp.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7ll_Vp_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7ll_Vp_Vp, aBFu7ll_Vp_Vp)
//============================================================================



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



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



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



static void Test_aBFu7s_BFs7c_BFs7c_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7c_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7c_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7c_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7c_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7c_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7c_BFs7c, aBFu7s_BFs7c_BFs7c_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7c_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7c_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7c_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7c_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7c_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7c_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7c_BFs7i, aBFu7s_BFs7c_BFs7c_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7c_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7c_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7c_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7c_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7c_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7c_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7c_BFs7ll, aBFu7s_BFs7c_BFs7c_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7c_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7c_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7c_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7c_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7c_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7c_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7c_BFs7s, aBFu7s_BFs7c_BFs7c_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7c_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7c_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7c_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7c_BFu7c, aBFu7s_BFs7c_BFs7c_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7c_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7c_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7c_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7c_BFu7i, aBFu7s_BFs7c_BFs7c_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7c_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7c_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7c_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7c_BFu7ll, aBFu7s_BFs7c_BFs7c_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7c_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7c_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7c_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7c_BFu7s, aBFu7s_BFs7c_BFs7c_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7c_BFs7i_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7i_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7i_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7i_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7i_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7i_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7i_BFs7c, aBFu7s_BFs7c_BFs7i_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7i_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7i_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7i_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7i_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7i_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7i_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7i_BFs7i, aBFu7s_BFs7c_BFs7i_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7i_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7i_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7i_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7i_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7i_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7i_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7i_BFs7ll, aBFu7s_BFs7c_BFs7i_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7i_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7i_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7i_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7i_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7i_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7i_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7i_BFs7s, aBFu7s_BFs7c_BFs7i_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7i_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7i_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7i_BFu7c, aBFu7s_BFs7c_BFs7i_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7i_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7i_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7i_BFu7i, aBFu7s_BFs7c_BFs7i_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7i_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7i_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7i_BFu7ll, aBFu7s_BFs7c_BFs7i_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7i_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7i_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7i_BFu7s, aBFu7s_BFs7c_BFs7i_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7c_BFs7ll_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7ll_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7ll_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7ll_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7ll_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7ll_BFs7c, aBFu7s_BFs7c_BFs7ll_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7ll_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7ll_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7ll_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7ll_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7ll_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7ll_BFs7i, aBFu7s_BFs7c_BFs7ll_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7ll_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7ll_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7ll_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7ll_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7ll_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7ll_BFs7ll, aBFu7s_BFs7c_BFs7ll_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7ll_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7ll_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7ll_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7ll_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7ll_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7ll_BFs7s, aBFu7s_BFs7c_BFs7ll_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7ll_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7ll_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7ll_BFu7c, aBFu7s_BFs7c_BFs7ll_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7ll_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7ll_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7ll_BFu7i, aBFu7s_BFs7c_BFs7ll_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7ll_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7ll_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7ll_BFu7ll, aBFu7s_BFs7c_BFs7ll_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7ll_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7ll_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7ll_BFu7s, aBFu7s_BFs7c_BFs7ll_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7c_BFs7s_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7s_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7s_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7s_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7s_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7s_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7s_BFs7c, aBFu7s_BFs7c_BFs7s_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7s_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7s_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7s_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7s_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7s_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7s_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7s_BFs7i, aBFu7s_BFs7c_BFs7s_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7s_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7s_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7s_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7s_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7s_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7s_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7s_BFs7ll, aBFu7s_BFs7c_BFs7s_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7s_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7s_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7s_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7s_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7s_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7s_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7s_BFs7s, aBFu7s_BFs7c_BFs7s_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7s_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7s_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7s_BFu7c, aBFu7s_BFs7c_BFs7s_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7s_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7s_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7s_BFu7i, aBFu7s_BFs7c_BFs7s_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7s_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7s_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7s_BFu7ll, aBFu7s_BFs7c_BFs7s_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7c_BFs7s_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFs7s_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7c_BFs7s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFs7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFs7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFs7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFs7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFs7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFs7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFs7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFs7s_BFu7s, aBFu7s_BFs7c_BFs7s_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7c_BFu7c_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7c_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7c_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7c_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7c_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7c_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7c_BFs7c, aBFu7s_BFs7c_BFu7c_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7c_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7c_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7c_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7c_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7c_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7c_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7c_BFs7i, aBFu7s_BFs7c_BFu7c_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7c_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7c_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7c_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7c_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7c_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7c_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7c_BFs7ll, aBFu7s_BFs7c_BFu7c_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7c_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7c_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7c_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7c_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7c_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7c_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7c_BFs7s, aBFu7s_BFs7c_BFu7c_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7c_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7c_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7c_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7c_BFu7c, aBFu7s_BFs7c_BFu7c_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7c_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7c_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7c_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7c_BFu7i, aBFu7s_BFs7c_BFu7c_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7c_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7c_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7c_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7c_BFu7ll, aBFu7s_BFs7c_BFu7c_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7c_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7c_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7c_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7c_BFu7s, aBFu7s_BFs7c_BFu7c_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7c_BFu7i_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7i_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7i_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7i_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7i_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7i_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7i_BFs7c, aBFu7s_BFs7c_BFu7i_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7i_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7i_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7i_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7i_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7i_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7i_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7i_BFs7i, aBFu7s_BFs7c_BFu7i_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7i_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7i_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7i_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7i_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7i_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7i_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7i_BFs7ll, aBFu7s_BFs7c_BFu7i_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7i_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7i_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7i_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7i_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7i_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7i_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7i_BFs7s, aBFu7s_BFs7c_BFu7i_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7i_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7i_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7i_BFu7c, aBFu7s_BFs7c_BFu7i_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7i_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7i_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7i_BFu7i, aBFu7s_BFs7c_BFu7i_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7i_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7i_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7i_BFu7ll, aBFu7s_BFs7c_BFu7i_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7i_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7i_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7i_BFu7s, aBFu7s_BFs7c_BFu7i_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7c_BFu7ll_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7ll_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7ll_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7ll_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7ll_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7ll_BFs7c, aBFu7s_BFs7c_BFu7ll_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7ll_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7ll_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7ll_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7ll_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7ll_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7ll_BFs7i, aBFu7s_BFs7c_BFu7ll_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7ll_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7ll_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7ll_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7ll_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7ll_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7ll_BFs7ll, aBFu7s_BFs7c_BFu7ll_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7ll_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7ll_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7ll_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7ll_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7ll_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7ll_BFs7s, aBFu7s_BFs7c_BFu7ll_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7ll_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7ll_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7ll_BFu7c, aBFu7s_BFs7c_BFu7ll_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7ll_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7ll_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7ll_BFu7i, aBFu7s_BFs7c_BFu7ll_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7ll_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7ll_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7ll_BFu7ll, aBFu7s_BFs7c_BFu7ll_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7ll_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7ll_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7ll_BFu7s, aBFu7s_BFs7c_BFu7ll_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7c_BFu7s_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7s_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7s_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7s_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7s_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7s_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7s_BFs7c, aBFu7s_BFs7c_BFu7s_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7s_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7s_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7s_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7s_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7s_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7s_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7s_BFs7i, aBFu7s_BFs7c_BFu7s_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7s_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7s_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7s_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7s_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7s_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7s_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7s_BFs7ll, aBFu7s_BFs7c_BFu7s_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7s_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7s_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7s_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7s_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7s_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7s_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7s_BFs7s, aBFu7s_BFs7c_BFu7s_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7s_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7s_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7s_BFu7c, aBFu7s_BFs7c_BFu7s_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7s_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7s_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7s_BFu7i, aBFu7s_BFs7c_BFu7s_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7s_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7s_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7s_BFu7ll, aBFu7s_BFs7c_BFu7s_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7c_BFu7s_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7c_BFu7s_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7c_BFu7s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7c_BFu7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7c_BFu7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7c_BFu7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7c_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7c_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7c_BFu7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7c_BFu7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7c_BFu7s_BFu7s, aBFu7s_BFs7c_BFu7s_BFu7s)
//============================================================================



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



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



static void Test_aBFu7s_BFs7i_BFs7c_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7c_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7c_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7c_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7c_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7c_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7c_BFs7c, aBFu7s_BFs7i_BFs7c_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7c_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7c_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7c_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7c_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7c_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7c_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7c_BFs7i, aBFu7s_BFs7i_BFs7c_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7c_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7c_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7c_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7c_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7c_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7c_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7c_BFs7ll, aBFu7s_BFs7i_BFs7c_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7c_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7c_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7c_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7c_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7c_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7c_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7c_BFs7s, aBFu7s_BFs7i_BFs7c_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7c_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7c_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7c_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7c_BFu7c, aBFu7s_BFs7i_BFs7c_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7c_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7c_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7c_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7c_BFu7i, aBFu7s_BFs7i_BFs7c_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7c_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7c_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7c_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7c_BFu7ll, aBFu7s_BFs7i_BFs7c_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7c_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7c_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7c_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7c_BFu7s, aBFu7s_BFs7i_BFs7c_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7i_BFs7i_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7i_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7i_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7i_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7i_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7i_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7i_BFs7c, aBFu7s_BFs7i_BFs7i_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7i_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7i_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7i_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7i_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7i_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7i_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7i_BFs7i, aBFu7s_BFs7i_BFs7i_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7i_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7i_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7i_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7i_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7i_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7i_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7i_BFs7ll, aBFu7s_BFs7i_BFs7i_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7i_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7i_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7i_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7i_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7i_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7i_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7i_BFs7s, aBFu7s_BFs7i_BFs7i_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7i_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7i_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7i_BFu7c, aBFu7s_BFs7i_BFs7i_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7i_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7i_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7i_BFu7i, aBFu7s_BFs7i_BFs7i_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7i_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7i_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7i_BFu7ll, aBFu7s_BFs7i_BFs7i_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7i_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7i_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7i_BFu7s, aBFu7s_BFs7i_BFs7i_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7i_BFs7ll_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7ll_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7ll_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7ll_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7ll_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7ll_BFs7c, aBFu7s_BFs7i_BFs7ll_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7ll_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7ll_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7ll_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7ll_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7ll_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7ll_BFs7i, aBFu7s_BFs7i_BFs7ll_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7ll_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7ll_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7ll_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7ll_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7ll_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7ll_BFs7ll, aBFu7s_BFs7i_BFs7ll_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7ll_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7ll_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7ll_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7ll_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7ll_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7ll_BFs7s, aBFu7s_BFs7i_BFs7ll_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7ll_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7ll_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7ll_BFu7c, aBFu7s_BFs7i_BFs7ll_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7ll_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7ll_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7ll_BFu7i, aBFu7s_BFs7i_BFs7ll_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7ll_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7ll_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7ll_BFu7ll, aBFu7s_BFs7i_BFs7ll_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7ll_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7ll_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7ll_BFu7s, aBFu7s_BFs7i_BFs7ll_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7i_BFs7s_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7s_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7s_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7s_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7s_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7s_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7s_BFs7c, aBFu7s_BFs7i_BFs7s_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7s_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7s_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7s_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7s_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7s_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7s_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7s_BFs7i, aBFu7s_BFs7i_BFs7s_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7s_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7s_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7s_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7s_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7s_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7s_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7s_BFs7ll, aBFu7s_BFs7i_BFs7s_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7s_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7s_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7s_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7s_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7s_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7s_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7s_BFs7s, aBFu7s_BFs7i_BFs7s_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7s_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7s_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7s_BFu7c, aBFu7s_BFs7i_BFs7s_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7s_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7s_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7s_BFu7i, aBFu7s_BFs7i_BFs7s_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7s_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7s_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7s_BFu7ll, aBFu7s_BFs7i_BFs7s_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7i_BFs7s_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFs7s_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7i_BFs7s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFs7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFs7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFs7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFs7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFs7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFs7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFs7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFs7s_BFu7s, aBFu7s_BFs7i_BFs7s_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7i_BFu7c_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7c_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7c_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7c_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7c_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7c_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7c_BFs7c, aBFu7s_BFs7i_BFu7c_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7c_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7c_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7c_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7c_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7c_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7c_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7c_BFs7i, aBFu7s_BFs7i_BFu7c_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7c_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7c_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7c_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7c_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7c_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7c_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7c_BFs7ll, aBFu7s_BFs7i_BFu7c_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7c_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7c_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7c_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7c_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7c_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7c_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7c_BFs7s, aBFu7s_BFs7i_BFu7c_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7c_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7c_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7c_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7c_BFu7c, aBFu7s_BFs7i_BFu7c_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7c_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7c_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7c_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7c_BFu7i, aBFu7s_BFs7i_BFu7c_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7c_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7c_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7c_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7c_BFu7ll, aBFu7s_BFs7i_BFu7c_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7c_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7c_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7c_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7c_BFu7s, aBFu7s_BFs7i_BFu7c_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7i_BFu7i_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7i_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7i_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7i_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7i_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7i_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7i_BFs7c, aBFu7s_BFs7i_BFu7i_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7i_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7i_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7i_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7i_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7i_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7i_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7i_BFs7i, aBFu7s_BFs7i_BFu7i_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7i_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7i_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7i_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7i_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7i_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7i_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7i_BFs7ll, aBFu7s_BFs7i_BFu7i_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7i_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7i_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7i_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7i_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7i_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7i_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7i_BFs7s, aBFu7s_BFs7i_BFu7i_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7i_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7i_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7i_BFu7c, aBFu7s_BFs7i_BFu7i_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7i_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7i_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7i_BFu7i, aBFu7s_BFs7i_BFu7i_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7i_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7i_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7i_BFu7ll, aBFu7s_BFs7i_BFu7i_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7i_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7i_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7i_BFu7s, aBFu7s_BFs7i_BFu7i_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7i_BFu7ll_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7ll_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7ll_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7ll_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7ll_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7ll_BFs7c, aBFu7s_BFs7i_BFu7ll_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7ll_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7ll_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7ll_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7ll_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7ll_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7ll_BFs7i, aBFu7s_BFs7i_BFu7ll_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7ll_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7ll_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7ll_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7ll_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7ll_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7ll_BFs7ll, aBFu7s_BFs7i_BFu7ll_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7ll_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7ll_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7ll_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7ll_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7ll_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7ll_BFs7s, aBFu7s_BFs7i_BFu7ll_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7ll_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7ll_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7ll_BFu7c, aBFu7s_BFs7i_BFu7ll_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7ll_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7ll_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7ll_BFu7i, aBFu7s_BFs7i_BFu7ll_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7ll_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7ll_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7ll_BFu7ll, aBFu7s_BFs7i_BFu7ll_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7ll_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7ll_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7ll_BFu7s, aBFu7s_BFs7i_BFu7ll_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7i_BFu7s_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7s_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7s_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7s_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7s_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7s_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7s_BFs7c, aBFu7s_BFs7i_BFu7s_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7s_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7s_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7s_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7s_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7s_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7s_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7s_BFs7i, aBFu7s_BFs7i_BFu7s_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7s_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7s_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7s_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7s_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7s_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7s_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7s_BFs7ll, aBFu7s_BFs7i_BFu7s_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7s_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7s_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7s_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7s_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7s_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7s_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7s_BFs7s, aBFu7s_BFs7i_BFu7s_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7s_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7s_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7s_BFu7c, aBFu7s_BFs7i_BFu7s_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7s_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7s_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7s_BFu7i, aBFu7s_BFs7i_BFu7s_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7s_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7s_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7s_BFu7ll, aBFu7s_BFs7i_BFu7s_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7i_BFu7s_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7i_BFu7s_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7i_BFu7s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7i_BFu7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7i_BFu7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7i_BFu7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7i_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7i_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7i_BFu7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7i_BFu7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7i_BFu7s_BFu7s, aBFu7s_BFs7i_BFu7s_BFu7s)
//============================================================================



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



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



static void Test_aBFu7s_BFs7ll_BFs7c_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7c_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7c_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7c_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7c_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7c_BFs7c, aBFu7s_BFs7ll_BFs7c_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7c_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7c_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7c_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7c_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7c_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7c_BFs7i, aBFu7s_BFs7ll_BFs7c_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7c_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7c_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7c_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7c_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7c_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7c_BFs7ll, aBFu7s_BFs7ll_BFs7c_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7c_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7c_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7c_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7c_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7c_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7c_BFs7s, aBFu7s_BFs7ll_BFs7c_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7c_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7c_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7c_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7c_BFu7c, aBFu7s_BFs7ll_BFs7c_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7c_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7c_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7c_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7c_BFu7i, aBFu7s_BFs7ll_BFs7c_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7c_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7c_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7c_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7c_BFu7ll, aBFu7s_BFs7ll_BFs7c_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7c_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7c_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7c_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7c_BFu7s, aBFu7s_BFs7ll_BFs7c_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7ll_BFs7i_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7i_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7i_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7i_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7i_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7i_BFs7c, aBFu7s_BFs7ll_BFs7i_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7i_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7i_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7i_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7i_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7i_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7i_BFs7i, aBFu7s_BFs7ll_BFs7i_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7i_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7i_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7i_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7i_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7i_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7i_BFs7ll, aBFu7s_BFs7ll_BFs7i_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7i_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7i_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7i_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7i_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7i_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7i_BFs7s, aBFu7s_BFs7ll_BFs7i_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7i_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7i_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7i_BFu7c, aBFu7s_BFs7ll_BFs7i_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7i_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7i_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7i_BFu7i, aBFu7s_BFs7ll_BFs7i_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7i_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7i_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7i_BFu7ll, aBFu7s_BFs7ll_BFs7i_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7i_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7i_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7i_BFu7s, aBFu7s_BFs7ll_BFs7i_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7ll_BFs7ll_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7ll_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7ll_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7ll_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7ll_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7ll_BFs7c, aBFu7s_BFs7ll_BFs7ll_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7ll_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7ll_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7ll_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7ll_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7ll_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7ll_BFs7i, aBFu7s_BFs7ll_BFs7ll_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7ll_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7ll_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7ll_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7ll_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7ll_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7ll_BFs7ll, aBFu7s_BFs7ll_BFs7ll_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7ll_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7ll_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7ll_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7ll_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7ll_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7ll_BFs7s, aBFu7s_BFs7ll_BFs7ll_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7ll_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7ll_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7ll_BFu7c, aBFu7s_BFs7ll_BFs7ll_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7ll_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7ll_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7ll_BFu7i, aBFu7s_BFs7ll_BFs7ll_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7ll_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7ll_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7ll_BFu7ll, aBFu7s_BFs7ll_BFs7ll_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7ll_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7ll_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7ll_BFu7s, aBFu7s_BFs7ll_BFs7ll_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7ll_BFs7s_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7s_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7s_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7s_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7s_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7s_BFs7c, aBFu7s_BFs7ll_BFs7s_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7s_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7s_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7s_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7s_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7s_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7s_BFs7i, aBFu7s_BFs7ll_BFs7s_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7s_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7s_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7s_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7s_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7s_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7s_BFs7ll, aBFu7s_BFs7ll_BFs7s_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7s_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7s_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7s_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7s_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7s_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7s_BFs7s, aBFu7s_BFs7ll_BFs7s_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7s_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7s_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7s_BFu7c, aBFu7s_BFs7ll_BFs7s_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7s_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7s_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7s_BFu7i, aBFu7s_BFs7ll_BFs7s_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7s_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7s_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7s_BFu7ll, aBFu7s_BFs7ll_BFs7s_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFs7s_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFs7s_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFs7s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFs7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFs7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFs7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFs7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFs7s_BFu7s, aBFu7s_BFs7ll_BFs7s_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7ll_BFu7c_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7c_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7c_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7c_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7c_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7c_BFs7c, aBFu7s_BFs7ll_BFu7c_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7c_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7c_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7c_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7c_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7c_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7c_BFs7i, aBFu7s_BFs7ll_BFu7c_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7c_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7c_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7c_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7c_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7c_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7c_BFs7ll, aBFu7s_BFs7ll_BFu7c_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7c_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7c_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7c_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7c_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7c_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7c_BFs7s, aBFu7s_BFs7ll_BFu7c_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7c_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7c_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7c_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7c_BFu7c, aBFu7s_BFs7ll_BFu7c_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7c_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7c_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7c_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7c_BFu7i, aBFu7s_BFs7ll_BFu7c_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7c_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7c_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7c_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7c_BFu7ll, aBFu7s_BFs7ll_BFu7c_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7c_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7c_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7c_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7c_BFu7s, aBFu7s_BFs7ll_BFu7c_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7ll_BFu7i_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7i_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7i_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7i_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7i_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7i_BFs7c, aBFu7s_BFs7ll_BFu7i_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7i_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7i_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7i_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7i_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7i_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7i_BFs7i, aBFu7s_BFs7ll_BFu7i_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7i_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7i_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7i_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7i_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7i_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7i_BFs7ll, aBFu7s_BFs7ll_BFu7i_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7i_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7i_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7i_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7i_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7i_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7i_BFs7s, aBFu7s_BFs7ll_BFu7i_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7i_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7i_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7i_BFu7c, aBFu7s_BFs7ll_BFu7i_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7i_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7i_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7i_BFu7i, aBFu7s_BFs7ll_BFu7i_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7i_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7i_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7i_BFu7ll, aBFu7s_BFs7ll_BFu7i_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7i_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7i_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7i_BFu7s, aBFu7s_BFs7ll_BFu7i_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7ll_BFu7ll_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7ll_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7ll_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7ll_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7ll_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7ll_BFs7c, aBFu7s_BFs7ll_BFu7ll_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7ll_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7ll_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7ll_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7ll_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7ll_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7ll_BFs7i, aBFu7s_BFs7ll_BFu7ll_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7ll_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7ll_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7ll_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7ll_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7ll_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7ll_BFs7ll, aBFu7s_BFs7ll_BFu7ll_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7ll_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7ll_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7ll_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7ll_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7ll_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7ll_BFs7s, aBFu7s_BFs7ll_BFu7ll_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7ll_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7ll_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7ll_BFu7c, aBFu7s_BFs7ll_BFu7ll_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7ll_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7ll_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7ll_BFu7i, aBFu7s_BFs7ll_BFu7ll_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7ll_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7ll_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7ll_BFu7ll, aBFu7s_BFs7ll_BFu7ll_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7ll_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7ll_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7ll_BFu7s, aBFu7s_BFs7ll_BFu7ll_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7ll_BFu7s_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7s_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7s_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7s_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7s_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7s_BFs7c, aBFu7s_BFs7ll_BFu7s_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7s_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7s_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7s_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7s_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7s_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7s_BFs7i, aBFu7s_BFs7ll_BFu7s_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7s_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7s_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7s_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7s_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7s_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7s_BFs7ll, aBFu7s_BFs7ll_BFu7s_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7s_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7s_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7s_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7s_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7s_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7s_BFs7s, aBFu7s_BFs7ll_BFu7s_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7s_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7s_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7s_BFu7c, aBFu7s_BFs7ll_BFu7s_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7s_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7s_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7s_BFu7i, aBFu7s_BFs7ll_BFu7s_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7s_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7s_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7s_BFu7ll, aBFu7s_BFs7ll_BFu7s_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7ll_BFu7s_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7ll_BFu7s_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7ll_BFu7s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7ll_BFu7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7ll_BFu7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7ll_BFu7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7ll_BFu7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7ll_BFu7s_BFu7s, aBFu7s_BFs7ll_BFu7s_BFu7s)
//============================================================================



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



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



static void Test_aBFu7s_BFs7s_BFs7c_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7c_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7c_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7c_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7c_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7c_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7c_BFs7c, aBFu7s_BFs7s_BFs7c_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7c_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7c_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7c_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7c_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7c_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7c_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7c_BFs7i, aBFu7s_BFs7s_BFs7c_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7c_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7c_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7c_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7c_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7c_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7c_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7c_BFs7ll, aBFu7s_BFs7s_BFs7c_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7c_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7c_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7c_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7c_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7c_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7c_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7c_BFs7s, aBFu7s_BFs7s_BFs7c_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7c_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7c_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7c_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7c_BFu7c, aBFu7s_BFs7s_BFs7c_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7c_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7c_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7c_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7c_BFu7i, aBFu7s_BFs7s_BFs7c_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7c_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7c_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7c_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7c_BFu7ll, aBFu7s_BFs7s_BFs7c_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7c_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7c_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7c_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7c_BFu7s, aBFu7s_BFs7s_BFs7c_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7s_BFs7i_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7i_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7i_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7i_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7i_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7i_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7i_BFs7c, aBFu7s_BFs7s_BFs7i_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7i_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7i_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7i_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7i_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7i_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7i_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7i_BFs7i, aBFu7s_BFs7s_BFs7i_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7i_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7i_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7i_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7i_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7i_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7i_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7i_BFs7ll, aBFu7s_BFs7s_BFs7i_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7i_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7i_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7i_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7i_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7i_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7i_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7i_BFs7s, aBFu7s_BFs7s_BFs7i_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7i_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7i_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7i_BFu7c, aBFu7s_BFs7s_BFs7i_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7i_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7i_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7i_BFu7i, aBFu7s_BFs7s_BFs7i_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7i_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7i_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7i_BFu7ll, aBFu7s_BFs7s_BFs7i_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7i_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7i_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7i_BFu7s, aBFu7s_BFs7s_BFs7i_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7s_BFs7ll_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7ll_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7ll_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7ll_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7ll_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7ll_BFs7c, aBFu7s_BFs7s_BFs7ll_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7ll_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7ll_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7ll_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7ll_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7ll_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7ll_BFs7i, aBFu7s_BFs7s_BFs7ll_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7ll_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7ll_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7ll_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7ll_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7ll_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7ll_BFs7ll, aBFu7s_BFs7s_BFs7ll_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7ll_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7ll_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7ll_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7ll_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7ll_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7ll_BFs7s, aBFu7s_BFs7s_BFs7ll_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7ll_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7ll_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7ll_BFu7c, aBFu7s_BFs7s_BFs7ll_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7ll_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7ll_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7ll_BFu7i, aBFu7s_BFs7s_BFs7ll_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7ll_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7ll_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7ll_BFu7ll, aBFu7s_BFs7s_BFs7ll_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7ll_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7ll_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7ll_BFu7s, aBFu7s_BFs7s_BFs7ll_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7s_BFs7s_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7s_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7s_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7s_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7s_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7s_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7s_BFs7c, aBFu7s_BFs7s_BFs7s_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7s_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7s_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7s_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7s_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7s_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7s_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7s_BFs7i, aBFu7s_BFs7s_BFs7s_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7s_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7s_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7s_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7s_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7s_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7s_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7s_BFs7ll, aBFu7s_BFs7s_BFs7s_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7s_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7s_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7s_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7s_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7s_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7s_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7s_BFs7s, aBFu7s_BFs7s_BFs7s_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7s_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7s_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7s_BFu7c, aBFu7s_BFs7s_BFs7s_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7s_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7s_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7s_BFu7i, aBFu7s_BFs7s_BFs7s_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7s_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7s_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7s_BFu7ll, aBFu7s_BFs7s_BFs7s_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7s_BFs7s_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFs7s_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7s_BFs7s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFs7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFs7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFs7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFs7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFs7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFs7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFs7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFs7s_BFu7s, aBFu7s_BFs7s_BFs7s_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7s_BFu7c_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7c_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7c_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7c_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7c_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7c_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7c_BFs7c, aBFu7s_BFs7s_BFu7c_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7c_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7c_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7c_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7c_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7c_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7c_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7c_BFs7i, aBFu7s_BFs7s_BFu7c_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7c_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7c_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7c_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7c_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7c_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7c_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7c_BFs7ll, aBFu7s_BFs7s_BFu7c_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7c_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7c_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7c_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7c_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7c_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7c_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7c_BFs7s, aBFu7s_BFs7s_BFu7c_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7c_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7c_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7c_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7c_BFu7c, aBFu7s_BFs7s_BFu7c_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7c_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7c_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7c_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7c_BFu7i, aBFu7s_BFs7s_BFu7c_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7c_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7c_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7c_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7c_BFu7ll, aBFu7s_BFs7s_BFu7c_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7c_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7c_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7c_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7c_BFu7s, aBFu7s_BFs7s_BFu7c_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7s_BFu7i_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7i_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7i_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7i_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7i_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7i_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7i_BFs7c, aBFu7s_BFs7s_BFu7i_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7i_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7i_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7i_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7i_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7i_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7i_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7i_BFs7i, aBFu7s_BFs7s_BFu7i_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7i_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7i_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7i_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7i_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7i_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7i_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7i_BFs7ll, aBFu7s_BFs7s_BFu7i_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7i_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7i_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7i_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7i_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7i_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7i_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7i_BFs7s, aBFu7s_BFs7s_BFu7i_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7i_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7i_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7i_BFu7c, aBFu7s_BFs7s_BFu7i_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7i_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7i_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7i_BFu7i, aBFu7s_BFs7s_BFu7i_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7i_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7i_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7i_BFu7ll, aBFu7s_BFs7s_BFu7i_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7i_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7i_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7i_BFu7s, aBFu7s_BFs7s_BFu7i_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7s_BFu7ll_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7ll_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7ll_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7ll_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7ll_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7ll_BFs7c, aBFu7s_BFs7s_BFu7ll_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7ll_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7ll_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7ll_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7ll_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7ll_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7ll_BFs7i, aBFu7s_BFs7s_BFu7ll_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7ll_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7ll_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7ll_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7ll_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7ll_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7ll_BFs7ll, aBFu7s_BFs7s_BFu7ll_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7ll_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7ll_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7ll_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7ll_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7ll_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7ll_BFs7s, aBFu7s_BFs7s_BFu7ll_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7ll_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7ll_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7ll_BFu7c, aBFu7s_BFs7s_BFu7ll_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7ll_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7ll_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7ll_BFu7i, aBFu7s_BFs7s_BFu7ll_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7ll_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7ll_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7ll_BFu7ll, aBFu7s_BFs7s_BFu7ll_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7ll_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7ll_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7ll_BFu7s, aBFu7s_BFs7s_BFu7ll_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFs7s_BFu7s_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7s_BFs7c");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7s_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7s_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7s_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7s_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7s_BFs7c, aBFu7s_BFs7s_BFu7s_BFs7c)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7s_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7s_BFs7i");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7s_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7s_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7s_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7s_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7s_BFs7i, aBFu7s_BFs7s_BFu7s_BFs7i)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7s_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7s_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7s_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7s_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7s_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7s_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7s_BFs7ll, aBFu7s_BFs7s_BFu7s_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7s_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7s_BFs7s");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7s_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7s_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7s_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7s_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7s_BFs7s, aBFu7s_BFs7s_BFu7s_BFs7s)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7s_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7s_BFu7c");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7s_BFu7c, aBFu7s_BFs7s_BFu7s_BFu7c)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7s_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7s_BFu7i");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7s_BFu7i, aBFu7s_BFs7s_BFu7s_BFu7i)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7s_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7s_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7s_BFu7ll, aBFu7s_BFs7s_BFu7s_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFs7s_BFu7s_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFs7s_BFu7s_BFu7s");
    static STRUCT_IF_C aBFu7s_BFs7s_BFu7s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFs7s_BFu7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFs7s_BFu7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFs7s_BFu7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFs7s_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_sll(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFs7s_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFs7s_BFu7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFs7s_BFu7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFs7s_BFu7s_BFu7s, aBFu7s_BFs7s_BFu7s_BFu7s)
//============================================================================



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



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



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



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



static void Test_aBFu7s_BFu15i_BFu16i()
{
  {
    init_simple_test("aBFu7s_BFu15i_BFu16i");
    static STRUCT_IF_C aBFu7s_BFu15i_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_BFu16i");
    set_bf_and_test(lv, v3, 2, 6, 16, 1, "aBFu7s_BFu15i_BFu16i");
    set_bf_and_test(lv, v3, 2, 6, 16, hide_ull(1LL<<15), "aBFu7s_BFu15i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_BFu16i, aBFu7s_BFu15i_BFu16i)
//============================================================================



static void Test_aBFu7s_BFu15i_BFu16ll()
{
  {
    init_simple_test("aBFu7s_BFu15i_BFu16ll");
    static STRUCT_IF_C aBFu7s_BFu15i_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_BFu16ll");
    set_bf_and_test(lv, v3, 2, 6, 16, 1, "aBFu7s_BFu15i_BFu16ll");
    set_bf_and_test(lv, v3, 2, 6, 16, hide_ull(1LL<<15), "aBFu7s_BFu15i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_BFu16ll, aBFu7s_BFu15i_BFu16ll)
//============================================================================



static void Test_aBFu7s_BFu15i_BFu16s()
{
  {
    init_simple_test("aBFu7s_BFu15i_BFu16s");
    static STRUCT_IF_C aBFu7s_BFu15i_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_BFu16s");
    set_bf_and_test(lv, v3, 2, 6, 16, 1, "aBFu7s_BFu15i_BFu16s");
    set_bf_and_test(lv, v3, 2, 6, 16, hide_ull(1LL<<15), "aBFu7s_BFu15i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_BFu16s, aBFu7s_BFu15i_BFu16s)
//============================================================================



static void Test_aBFu7s_BFu15i_BFu17i()
{
  {
    init_simple_test("aBFu7s_BFu15i_BFu17i");
    static STRUCT_IF_C aBFu7s_BFu15i_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_BFu17i");
    set_bf_and_test(lv, v3, 2, 6, 17, 1, "aBFu7s_BFu15i_BFu17i");
    set_bf_and_test(lv, v3, 2, 6, 17, hide_ull(1LL<<16), "aBFu7s_BFu15i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_BFu17i, aBFu7s_BFu15i_BFu17i)
//============================================================================



static void Test_aBFu7s_BFu15i_BFu17ll()
{
  {
    init_simple_test("aBFu7s_BFu15i_BFu17ll");
    static STRUCT_IF_C aBFu7s_BFu15i_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_BFu17ll");
    set_bf_and_test(lv, v3, 2, 6, 17, 1, "aBFu7s_BFu15i_BFu17ll");
    set_bf_and_test(lv, v3, 2, 6, 17, hide_ull(1LL<<16), "aBFu7s_BFu15i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_BFu17ll, aBFu7s_BFu15i_BFu17ll)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu15i_BFu8c()
{
  {
    init_simple_test("aBFu7s_BFu15i_BFu8c");
    static STRUCT_IF_C aBFu7s_BFu15i_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_BFu8c");
    set_bf_and_test(lv, v3, 2, 6, 8, 1, "aBFu7s_BFu15i_BFu8c");
    set_bf_and_test(lv, v3, 2, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu15i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_BFu8c, aBFu7s_BFu15i_BFu8c)
//============================================================================



static void Test_aBFu7s_BFu15i_BFu8i()
{
  {
    init_simple_test("aBFu7s_BFu15i_BFu8i");
    static STRUCT_IF_C aBFu7s_BFu15i_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_BFu8i");
    set_bf_and_test(lv, v3, 2, 6, 8, 1, "aBFu7s_BFu15i_BFu8i");
    set_bf_and_test(lv, v3, 2, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu15i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_BFu8i, aBFu7s_BFu15i_BFu8i)
//============================================================================



static void Test_aBFu7s_BFu15i_BFu8ll()
{
  {
    init_simple_test("aBFu7s_BFu15i_BFu8ll");
    static STRUCT_IF_C aBFu7s_BFu15i_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 6, 8, 1, "aBFu7s_BFu15i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu15i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_BFu8ll, aBFu7s_BFu15i_BFu8ll)
//============================================================================



static void Test_aBFu7s_BFu15i_BFu8s()
{
  {
    init_simple_test("aBFu7s_BFu15i_BFu8s");
    static STRUCT_IF_C aBFu7s_BFu15i_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_BFu8s");
    set_bf_and_test(lv, v3, 2, 6, 8, 1, "aBFu7s_BFu15i_BFu8s");
    set_bf_and_test(lv, v3, 2, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu15i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_BFu8s, aBFu7s_BFu15i_BFu8s)
//============================================================================



static void Test_aBFu7s_BFu15i_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu15i_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu15i_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_BFu9i");
    set_bf_and_test(lv, v3, 2, 6, 9, 1, "aBFu7s_BFu15i_BFu9i");
    set_bf_and_test(lv, v3, 2, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu15i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_BFu9i, aBFu7s_BFu15i_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu15i_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu15i_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu15i_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 6, 9, 1, "aBFu7s_BFu15i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu15i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_BFu9ll, aBFu7s_BFu15i_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu15i_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu15i_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu15i_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_BFu9s");
    set_bf_and_test(lv, v3, 2, 6, 9, 1, "aBFu7s_BFu15i_BFu9s");
    set_bf_and_test(lv, v3, 2, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu15i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_BFu9s, aBFu7s_BFu15i_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu15i_C()
{
  {
    init_simple_test("aBFu7s_BFu15i_C");
    static STRUCT_IF_C aBFu7s_BFu15i_C lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_C");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_C");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_C");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_C, aBFu7s_BFu15i_C)
//============================================================================



static void Test_aBFu7s_BFu15i_D()
{
  {
    init_simple_test("aBFu7s_BFu15i_D");
    static STRUCT_IF_C aBFu7s_BFu15i_D lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu15i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_D");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_D");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_D");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_D, aBFu7s_BFu15i_D)
//============================================================================



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



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



static void Test_aBFu7s_BFu15i_Ip()
{
  {
    init_simple_test("aBFu7s_BFu15i_Ip");
    static STRUCT_IF_C aBFu7s_BFu15i_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_BFu15i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_Ip");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_Ip");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_Ip");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_Ip, aBFu7s_BFu15i_Ip)
//============================================================================



static void Test_aBFu7s_BFu15i_L()
{
  {
    init_simple_test("aBFu7s_BFu15i_L");
    static STRUCT_IF_C aBFu7s_BFu15i_L lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu15i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_L");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_L");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_L");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_L, aBFu7s_BFu15i_L)
//============================================================================



static void Test_aBFu7s_BFu15i_S()
{
  {
    init_simple_test("aBFu7s_BFu15i_S");
    static STRUCT_IF_C aBFu7s_BFu15i_S lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_S");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_S");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_S");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_S, aBFu7s_BFu15i_S)
//============================================================================



static void Test_aBFu7s_BFu15i_Uc()
{
  {
    init_simple_test("aBFu7s_BFu15i_Uc");
    static STRUCT_IF_C aBFu7s_BFu15i_Uc lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_Uc");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_Uc");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_Uc");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_Uc, aBFu7s_BFu15i_Uc)
//============================================================================



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



static void Test_aBFu7s_BFu15i_Ul()
{
  {
    init_simple_test("aBFu7s_BFu15i_Ul");
    static STRUCT_IF_C aBFu7s_BFu15i_Ul lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu15i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_Ul");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_Ul");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_Ul");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_Ul, aBFu7s_BFu15i_Ul)
//============================================================================



static void Test_aBFu7s_BFu15i_Us()
{
  {
    init_simple_test("aBFu7s_BFu15i_Us");
    static STRUCT_IF_C aBFu7s_BFu15i_Us lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_Us");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_Us");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_Us");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_Us, aBFu7s_BFu15i_Us)
//============================================================================



static void Test_aBFu7s_BFu15i_Vp()
{
  {
    init_simple_test("aBFu7s_BFu15i_Vp");
    static STRUCT_IF_C aBFu7s_BFu15i_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_BFu15i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15i_Vp");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15i_Vp");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15i_Vp");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15i_Vp, aBFu7s_BFu15i_Vp)
//============================================================================



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



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



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



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



static void Test_aBFu7s_BFu15ll_BFu16i()
{
  {
    init_simple_test("aBFu7s_BFu15ll_BFu16i");
    static STRUCT_IF_C aBFu7s_BFu15ll_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_BFu16i");
    set_bf_and_test(lv, v3, 2, 6, 16, 1, "aBFu7s_BFu15ll_BFu16i");
    set_bf_and_test(lv, v3, 2, 6, 16, hide_ull(1LL<<15), "aBFu7s_BFu15ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_BFu16i, aBFu7s_BFu15ll_BFu16i)
//============================================================================



static void Test_aBFu7s_BFu15ll_BFu16ll()
{
  {
    init_simple_test("aBFu7s_BFu15ll_BFu16ll");
    static STRUCT_IF_C aBFu7s_BFu15ll_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v3, 2, 6, 16, 1, "aBFu7s_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v3, 2, 6, 16, hide_ull(1LL<<15), "aBFu7s_BFu15ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_BFu16ll, aBFu7s_BFu15ll_BFu16ll)
//============================================================================



static void Test_aBFu7s_BFu15ll_BFu16s()
{
  {
    init_simple_test("aBFu7s_BFu15ll_BFu16s");
    static STRUCT_IF_C aBFu7s_BFu15ll_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_BFu16s");
    set_bf_and_test(lv, v3, 2, 6, 16, 1, "aBFu7s_BFu15ll_BFu16s");
    set_bf_and_test(lv, v3, 2, 6, 16, hide_ull(1LL<<15), "aBFu7s_BFu15ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_BFu16s, aBFu7s_BFu15ll_BFu16s)
//============================================================================



static void Test_aBFu7s_BFu15ll_BFu17i()
{
  {
    init_simple_test("aBFu7s_BFu15ll_BFu17i");
    static STRUCT_IF_C aBFu7s_BFu15ll_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_BFu17i");
    set_bf_and_test(lv, v3, 2, 6, 17, 1, "aBFu7s_BFu15ll_BFu17i");
    set_bf_and_test(lv, v3, 2, 6, 17, hide_ull(1LL<<16), "aBFu7s_BFu15ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_BFu17i, aBFu7s_BFu15ll_BFu17i)
//============================================================================



static void Test_aBFu7s_BFu15ll_BFu17ll()
{
  {
    init_simple_test("aBFu7s_BFu15ll_BFu17ll");
    static STRUCT_IF_C aBFu7s_BFu15ll_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v3, 2, 6, 17, 1, "aBFu7s_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v3, 2, 6, 17, hide_ull(1LL<<16), "aBFu7s_BFu15ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_BFu17ll, aBFu7s_BFu15ll_BFu17ll)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu15ll_BFu8c()
{
  {
    init_simple_test("aBFu7s_BFu15ll_BFu8c");
    static STRUCT_IF_C aBFu7s_BFu15ll_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 6, 8, 1, "aBFu7s_BFu15ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu15ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_BFu8c, aBFu7s_BFu15ll_BFu8c)
//============================================================================



static void Test_aBFu7s_BFu15ll_BFu8i()
{
  {
    init_simple_test("aBFu7s_BFu15ll_BFu8i");
    static STRUCT_IF_C aBFu7s_BFu15ll_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 6, 8, 1, "aBFu7s_BFu15ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu15ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_BFu8i, aBFu7s_BFu15ll_BFu8i)
//============================================================================



static void Test_aBFu7s_BFu15ll_BFu8ll()
{
  {
    init_simple_test("aBFu7s_BFu15ll_BFu8ll");
    static STRUCT_IF_C aBFu7s_BFu15ll_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 6, 8, 1, "aBFu7s_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu15ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_BFu8ll, aBFu7s_BFu15ll_BFu8ll)
//============================================================================



static void Test_aBFu7s_BFu15ll_BFu8s()
{
  {
    init_simple_test("aBFu7s_BFu15ll_BFu8s");
    static STRUCT_IF_C aBFu7s_BFu15ll_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 6, 8, 1, "aBFu7s_BFu15ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu15ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_BFu8s, aBFu7s_BFu15ll_BFu8s)
//============================================================================



static void Test_aBFu7s_BFu15ll_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu15ll_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu15ll_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 6, 9, 1, "aBFu7s_BFu15ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu15ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_BFu9i, aBFu7s_BFu15ll_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu15ll_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu15ll_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu15ll_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 6, 9, 1, "aBFu7s_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu15ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_BFu9ll, aBFu7s_BFu15ll_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu15ll_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu15ll_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu15ll_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 6, 9, 1, "aBFu7s_BFu15ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu15ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_BFu9s, aBFu7s_BFu15ll_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu15ll_C()
{
  {
    init_simple_test("aBFu7s_BFu15ll_C");
    static STRUCT_IF_C aBFu7s_BFu15ll_C lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_C");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_C");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_C");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_C, aBFu7s_BFu15ll_C)
//============================================================================



static void Test_aBFu7s_BFu15ll_D()
{
  {
    init_simple_test("aBFu7s_BFu15ll_D");
    static STRUCT_IF_C aBFu7s_BFu15ll_D lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu15ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_D");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_D");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_D");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_D, aBFu7s_BFu15ll_D)
//============================================================================



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



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



static void Test_aBFu7s_BFu15ll_Ip()
{
  {
    init_simple_test("aBFu7s_BFu15ll_Ip");
    static STRUCT_IF_C aBFu7s_BFu15ll_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_BFu15ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_Ip");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_Ip");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_Ip");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_Ip, aBFu7s_BFu15ll_Ip)
//============================================================================



static void Test_aBFu7s_BFu15ll_L()
{
  {
    init_simple_test("aBFu7s_BFu15ll_L");
    static STRUCT_IF_C aBFu7s_BFu15ll_L lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu15ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_L");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_L");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_L");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_L, aBFu7s_BFu15ll_L)
//============================================================================



static void Test_aBFu7s_BFu15ll_S()
{
  {
    init_simple_test("aBFu7s_BFu15ll_S");
    static STRUCT_IF_C aBFu7s_BFu15ll_S lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_S");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_S");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_S");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_S, aBFu7s_BFu15ll_S)
//============================================================================



static void Test_aBFu7s_BFu15ll_Uc()
{
  {
    init_simple_test("aBFu7s_BFu15ll_Uc");
    static STRUCT_IF_C aBFu7s_BFu15ll_Uc lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_Uc");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_Uc");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_Uc");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_Uc, aBFu7s_BFu15ll_Uc)
//============================================================================



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



static void Test_aBFu7s_BFu15ll_Ul()
{
  {
    init_simple_test("aBFu7s_BFu15ll_Ul");
    static STRUCT_IF_C aBFu7s_BFu15ll_Ul lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu15ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_Ul");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_Ul");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_Ul");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_Ul, aBFu7s_BFu15ll_Ul)
//============================================================================



static void Test_aBFu7s_BFu15ll_Us()
{
  {
    init_simple_test("aBFu7s_BFu15ll_Us");
    static STRUCT_IF_C aBFu7s_BFu15ll_Us lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_Us");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_Us");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_Us");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_Us, aBFu7s_BFu15ll_Us)
//============================================================================



static void Test_aBFu7s_BFu15ll_Vp()
{
  {
    init_simple_test("aBFu7s_BFu15ll_Vp");
    static STRUCT_IF_C aBFu7s_BFu15ll_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_BFu15ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15ll_Vp");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15ll_Vp");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15ll_Vp");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15ll_Vp, aBFu7s_BFu15ll_Vp)
//============================================================================



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



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



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



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



static void Test_aBFu7s_BFu15s_BFu16i()
{
  {
    init_simple_test("aBFu7s_BFu15s_BFu16i");
    static STRUCT_IF_C aBFu7s_BFu15s_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_BFu16i");
    set_bf_and_test(lv, v3, 2, 6, 16, 1, "aBFu7s_BFu15s_BFu16i");
    set_bf_and_test(lv, v3, 2, 6, 16, hide_ull(1LL<<15), "aBFu7s_BFu15s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_BFu16i, aBFu7s_BFu15s_BFu16i)
//============================================================================



static void Test_aBFu7s_BFu15s_BFu16ll()
{
  {
    init_simple_test("aBFu7s_BFu15s_BFu16ll");
    static STRUCT_IF_C aBFu7s_BFu15s_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_BFu16ll");
    set_bf_and_test(lv, v3, 2, 6, 16, 1, "aBFu7s_BFu15s_BFu16ll");
    set_bf_and_test(lv, v3, 2, 6, 16, hide_ull(1LL<<15), "aBFu7s_BFu15s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_BFu16ll, aBFu7s_BFu15s_BFu16ll)
//============================================================================



static void Test_aBFu7s_BFu15s_BFu16s()
{
  {
    init_simple_test("aBFu7s_BFu15s_BFu16s");
    static STRUCT_IF_C aBFu7s_BFu15s_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_BFu16s");
    set_bf_and_test(lv, v3, 2, 6, 16, 1, "aBFu7s_BFu15s_BFu16s");
    set_bf_and_test(lv, v3, 2, 6, 16, hide_ull(1LL<<15), "aBFu7s_BFu15s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_BFu16s, aBFu7s_BFu15s_BFu16s)
//============================================================================



static void Test_aBFu7s_BFu15s_BFu17i()
{
  {
    init_simple_test("aBFu7s_BFu15s_BFu17i");
    static STRUCT_IF_C aBFu7s_BFu15s_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_BFu17i");
    set_bf_and_test(lv, v3, 2, 6, 17, 1, "aBFu7s_BFu15s_BFu17i");
    set_bf_and_test(lv, v3, 2, 6, 17, hide_ull(1LL<<16), "aBFu7s_BFu15s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_BFu17i, aBFu7s_BFu15s_BFu17i)
//============================================================================



static void Test_aBFu7s_BFu15s_BFu17ll()
{
  {
    init_simple_test("aBFu7s_BFu15s_BFu17ll");
    static STRUCT_IF_C aBFu7s_BFu15s_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_BFu17ll");
    set_bf_and_test(lv, v3, 2, 6, 17, 1, "aBFu7s_BFu15s_BFu17ll");
    set_bf_and_test(lv, v3, 2, 6, 17, hide_ull(1LL<<16), "aBFu7s_BFu15s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_BFu17ll, aBFu7s_BFu15s_BFu17ll)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu15s_BFu8c()
{
  {
    init_simple_test("aBFu7s_BFu15s_BFu8c");
    static STRUCT_IF_C aBFu7s_BFu15s_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_BFu8c");
    set_bf_and_test(lv, v3, 2, 6, 8, 1, "aBFu7s_BFu15s_BFu8c");
    set_bf_and_test(lv, v3, 2, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu15s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_BFu8c, aBFu7s_BFu15s_BFu8c)
//============================================================================



static void Test_aBFu7s_BFu15s_BFu8i()
{
  {
    init_simple_test("aBFu7s_BFu15s_BFu8i");
    static STRUCT_IF_C aBFu7s_BFu15s_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_BFu8i");
    set_bf_and_test(lv, v3, 2, 6, 8, 1, "aBFu7s_BFu15s_BFu8i");
    set_bf_and_test(lv, v3, 2, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu15s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_BFu8i, aBFu7s_BFu15s_BFu8i)
//============================================================================



static void Test_aBFu7s_BFu15s_BFu8ll()
{
  {
    init_simple_test("aBFu7s_BFu15s_BFu8ll");
    static STRUCT_IF_C aBFu7s_BFu15s_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 6, 8, 1, "aBFu7s_BFu15s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu15s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_BFu8ll, aBFu7s_BFu15s_BFu8ll)
//============================================================================



static void Test_aBFu7s_BFu15s_BFu8s()
{
  {
    init_simple_test("aBFu7s_BFu15s_BFu8s");
    static STRUCT_IF_C aBFu7s_BFu15s_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_BFu8s");
    set_bf_and_test(lv, v3, 2, 6, 8, 1, "aBFu7s_BFu15s_BFu8s");
    set_bf_and_test(lv, v3, 2, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu15s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_BFu8s, aBFu7s_BFu15s_BFu8s)
//============================================================================



static void Test_aBFu7s_BFu15s_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu15s_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu15s_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_BFu9i");
    set_bf_and_test(lv, v3, 2, 6, 9, 1, "aBFu7s_BFu15s_BFu9i");
    set_bf_and_test(lv, v3, 2, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu15s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_BFu9i, aBFu7s_BFu15s_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu15s_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu15s_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu15s_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 6, 9, 1, "aBFu7s_BFu15s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu15s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_BFu9ll, aBFu7s_BFu15s_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu15s_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu15s_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu15s_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_BFu9s");
    set_bf_and_test(lv, v3, 2, 6, 9, 1, "aBFu7s_BFu15s_BFu9s");
    set_bf_and_test(lv, v3, 2, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu15s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_BFu9s, aBFu7s_BFu15s_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu15s_C()
{
  {
    init_simple_test("aBFu7s_BFu15s_C");
    static STRUCT_IF_C aBFu7s_BFu15s_C lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_C");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_C");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_C");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_C, aBFu7s_BFu15s_C)
//============================================================================



static void Test_aBFu7s_BFu15s_D()
{
  {
    init_simple_test("aBFu7s_BFu15s_D");
    static STRUCT_IF_C aBFu7s_BFu15s_D lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu15s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_D");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_D");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_D");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_D, aBFu7s_BFu15s_D)
//============================================================================



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



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



static void Test_aBFu7s_BFu15s_Ip()
{
  {
    init_simple_test("aBFu7s_BFu15s_Ip");
    static STRUCT_IF_C aBFu7s_BFu15s_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_BFu15s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_Ip");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_Ip");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_Ip");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_Ip, aBFu7s_BFu15s_Ip)
//============================================================================



static void Test_aBFu7s_BFu15s_L()
{
  {
    init_simple_test("aBFu7s_BFu15s_L");
    static STRUCT_IF_C aBFu7s_BFu15s_L lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu15s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_L");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_L");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_L");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_L, aBFu7s_BFu15s_L)
//============================================================================



static void Test_aBFu7s_BFu15s_S()
{
  {
    init_simple_test("aBFu7s_BFu15s_S");
    static STRUCT_IF_C aBFu7s_BFu15s_S lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_S");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_S");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_S");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_S, aBFu7s_BFu15s_S)
//============================================================================



static void Test_aBFu7s_BFu15s_Uc()
{
  {
    init_simple_test("aBFu7s_BFu15s_Uc");
    static STRUCT_IF_C aBFu7s_BFu15s_Uc lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu15s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_Uc");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_Uc");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_Uc");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_Uc, aBFu7s_BFu15s_Uc)
//============================================================================



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



static void Test_aBFu7s_BFu15s_Ul()
{
  {
    init_simple_test("aBFu7s_BFu15s_Ul");
    static STRUCT_IF_C aBFu7s_BFu15s_Ul lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu15s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_Ul");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_Ul");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_Ul");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_Ul, aBFu7s_BFu15s_Ul)
//============================================================================



static void Test_aBFu7s_BFu15s_Us()
{
  {
    init_simple_test("aBFu7s_BFu15s_Us");
    static STRUCT_IF_C aBFu7s_BFu15s_Us lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu15s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_Us");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_Us");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_Us");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_Us, aBFu7s_BFu15s_Us)
//============================================================================



static void Test_aBFu7s_BFu15s_Vp()
{
  {
    init_simple_test("aBFu7s_BFu15s_Vp");
    static STRUCT_IF_C aBFu7s_BFu15s_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_BFu15s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu15s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu15s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu15s_Vp");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu7s_BFu15s_Vp");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu15s_Vp");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu15s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu15s_Vp, aBFu7s_BFu15s_Vp)
//============================================================================



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



static void Test_aBFu7s_BFu16i_BFu15i()
{
  {
    init_simple_test("aBFu7s_BFu16i_BFu15i");
    static STRUCT_IF_C aBFu7s_BFu16i_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu16i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16i_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16i_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16i_BFu15i");
    set_bf_and_test(lv, v3, 2, 7, 15, 1, "aBFu7s_BFu16i_BFu15i");
    set_bf_and_test(lv, v3, 2, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu16i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16i_BFu15i, aBFu7s_BFu16i_BFu15i)
//============================================================================



static void Test_aBFu7s_BFu16i_BFu15ll()
{
  {
    init_simple_test("aBFu7s_BFu16i_BFu15ll");
    static STRUCT_IF_C aBFu7s_BFu16i_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu16i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16i_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16i_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16i_BFu15ll");
    set_bf_and_test(lv, v3, 2, 7, 15, 1, "aBFu7s_BFu16i_BFu15ll");
    set_bf_and_test(lv, v3, 2, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu16i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16i_BFu15ll, aBFu7s_BFu16i_BFu15ll)
//============================================================================



static void Test_aBFu7s_BFu16i_BFu15s()
{
  {
    init_simple_test("aBFu7s_BFu16i_BFu15s");
    static STRUCT_IF_C aBFu7s_BFu16i_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu16i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16i_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16i_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16i_BFu15s");
    set_bf_and_test(lv, v3, 2, 7, 15, 1, "aBFu7s_BFu16i_BFu15s");
    set_bf_and_test(lv, v3, 2, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu16i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16i_BFu15s, aBFu7s_BFu16i_BFu15s)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu16i_BFu8c()
{
  {
    init_simple_test("aBFu7s_BFu16i_BFu8c");
    static STRUCT_IF_C aBFu7s_BFu16i_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16i_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16i_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16i_BFu8c");
    set_bf_and_test(lv, v3, 2, 7, 8, 1, "aBFu7s_BFu16i_BFu8c");
    set_bf_and_test(lv, v3, 2, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu16i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16i_BFu8c, aBFu7s_BFu16i_BFu8c)
//============================================================================



static void Test_aBFu7s_BFu16i_BFu8i()
{
  {
    init_simple_test("aBFu7s_BFu16i_BFu8i");
    static STRUCT_IF_C aBFu7s_BFu16i_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16i_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16i_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16i_BFu8i");
    set_bf_and_test(lv, v3, 2, 7, 8, 1, "aBFu7s_BFu16i_BFu8i");
    set_bf_and_test(lv, v3, 2, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu16i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16i_BFu8i, aBFu7s_BFu16i_BFu8i)
//============================================================================



static void Test_aBFu7s_BFu16i_BFu8ll()
{
  {
    init_simple_test("aBFu7s_BFu16i_BFu8ll");
    static STRUCT_IF_C aBFu7s_BFu16i_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 7, 8, 1, "aBFu7s_BFu16i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu16i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16i_BFu8ll, aBFu7s_BFu16i_BFu8ll)
//============================================================================



static void Test_aBFu7s_BFu16i_BFu8s()
{
  {
    init_simple_test("aBFu7s_BFu16i_BFu8s");
    static STRUCT_IF_C aBFu7s_BFu16i_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16i_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16i_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16i_BFu8s");
    set_bf_and_test(lv, v3, 2, 7, 8, 1, "aBFu7s_BFu16i_BFu8s");
    set_bf_and_test(lv, v3, 2, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu16i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16i_BFu8s, aBFu7s_BFu16i_BFu8s)
//============================================================================



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



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



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



static void Test_aBFu7s_BFu16i_C()
{
  {
    init_simple_test("aBFu7s_BFu16i_C");
    static STRUCT_IF_C aBFu7s_BFu16i_C lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16i_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16i_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16i_C");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16i_C");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16i_C");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16i_C, aBFu7s_BFu16i_C)
//============================================================================



static void Test_aBFu7s_BFu16i_D()
{
  {
    init_simple_test("aBFu7s_BFu16i_D");
    static STRUCT_IF_C aBFu7s_BFu16i_D lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu16i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16i_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16i_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16i_D");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16i_D");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16i_D");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16i_D, aBFu7s_BFu16i_D)
//============================================================================



static void Test_aBFu7s_BFu16i_F()
{
  {
    init_simple_test("aBFu7s_BFu16i_F");
    static STRUCT_IF_C aBFu7s_BFu16i_F lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu16i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16i_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16i_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16i_F");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16i_F");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16i_F");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16i_F, aBFu7s_BFu16i_F)
//============================================================================



static void Test_aBFu7s_BFu16i_I()
{
  {
    init_simple_test("aBFu7s_BFu16i_I");
    static STRUCT_IF_C aBFu7s_BFu16i_I lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu16i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16i_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16i_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16i_I");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16i_I");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16i_I");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16i_I, aBFu7s_BFu16i_I)
//============================================================================



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



static void Test_aBFu7s_BFu16i_L()
{
  {
    init_simple_test("aBFu7s_BFu16i_L");
    static STRUCT_IF_C aBFu7s_BFu16i_L lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu16i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16i_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16i_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16i_L");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16i_L");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16i_L");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16i_L, aBFu7s_BFu16i_L)
//============================================================================



static void Test_aBFu7s_BFu16i_S()
{
  {
    init_simple_test("aBFu7s_BFu16i_S");
    static STRUCT_IF_C aBFu7s_BFu16i_S lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu16i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16i_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16i_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16i_S");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16i_S");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16i_S");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16i_S, aBFu7s_BFu16i_S)
//============================================================================



static void Test_aBFu7s_BFu16i_Uc()
{
  {
    init_simple_test("aBFu7s_BFu16i_Uc");
    static STRUCT_IF_C aBFu7s_BFu16i_Uc lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16i_Uc");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16i_Uc");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16i_Uc");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16i_Uc, aBFu7s_BFu16i_Uc)
//============================================================================



static void Test_aBFu7s_BFu16i_Ui()
{
  {
    init_simple_test("aBFu7s_BFu16i_Ui");
    static STRUCT_IF_C aBFu7s_BFu16i_Ui lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu16i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16i_Ui");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16i_Ui");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16i_Ui");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16i_Ui, aBFu7s_BFu16i_Ui)
//============================================================================



static void Test_aBFu7s_BFu16i_Ul()
{
  {
    init_simple_test("aBFu7s_BFu16i_Ul");
    static STRUCT_IF_C aBFu7s_BFu16i_Ul lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu16i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16i_Ul");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16i_Ul");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16i_Ul");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16i_Ul, aBFu7s_BFu16i_Ul)
//============================================================================



static void Test_aBFu7s_BFu16i_Us()
{
  {
    init_simple_test("aBFu7s_BFu16i_Us");
    static STRUCT_IF_C aBFu7s_BFu16i_Us lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu16i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16i_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16i_Us");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16i_Us");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16i_Us");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16i_Us, aBFu7s_BFu16i_Us)
//============================================================================



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



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



static void Test_aBFu7s_BFu16ll_BFu15i()
{
  {
    init_simple_test("aBFu7s_BFu16ll_BFu15i");
    static STRUCT_IF_C aBFu7s_BFu16ll_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu16ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16ll_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16ll_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16ll_BFu15i");
    set_bf_and_test(lv, v3, 2, 7, 15, 1, "aBFu7s_BFu16ll_BFu15i");
    set_bf_and_test(lv, v3, 2, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu16ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16ll_BFu15i, aBFu7s_BFu16ll_BFu15i)
//============================================================================



static void Test_aBFu7s_BFu16ll_BFu15ll()
{
  {
    init_simple_test("aBFu7s_BFu16ll_BFu15ll");
    static STRUCT_IF_C aBFu7s_BFu16ll_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu16ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v3, 2, 7, 15, 1, "aBFu7s_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v3, 2, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu16ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16ll_BFu15ll, aBFu7s_BFu16ll_BFu15ll)
//============================================================================



static void Test_aBFu7s_BFu16ll_BFu15s()
{
  {
    init_simple_test("aBFu7s_BFu16ll_BFu15s");
    static STRUCT_IF_C aBFu7s_BFu16ll_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu16ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16ll_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16ll_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16ll_BFu15s");
    set_bf_and_test(lv, v3, 2, 7, 15, 1, "aBFu7s_BFu16ll_BFu15s");
    set_bf_and_test(lv, v3, 2, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu16ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16ll_BFu15s, aBFu7s_BFu16ll_BFu15s)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu16ll_BFu8c()
{
  {
    init_simple_test("aBFu7s_BFu16ll_BFu8c");
    static STRUCT_IF_C aBFu7s_BFu16ll_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 7, 8, 1, "aBFu7s_BFu16ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu16ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16ll_BFu8c, aBFu7s_BFu16ll_BFu8c)
//============================================================================



static void Test_aBFu7s_BFu16ll_BFu8i()
{
  {
    init_simple_test("aBFu7s_BFu16ll_BFu8i");
    static STRUCT_IF_C aBFu7s_BFu16ll_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 7, 8, 1, "aBFu7s_BFu16ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu16ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16ll_BFu8i, aBFu7s_BFu16ll_BFu8i)
//============================================================================



static void Test_aBFu7s_BFu16ll_BFu8ll()
{
  {
    init_simple_test("aBFu7s_BFu16ll_BFu8ll");
    static STRUCT_IF_C aBFu7s_BFu16ll_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 7, 8, 1, "aBFu7s_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu16ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16ll_BFu8ll, aBFu7s_BFu16ll_BFu8ll)
//============================================================================



static void Test_aBFu7s_BFu16ll_BFu8s()
{
  {
    init_simple_test("aBFu7s_BFu16ll_BFu8s");
    static STRUCT_IF_C aBFu7s_BFu16ll_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 7, 8, 1, "aBFu7s_BFu16ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu16ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16ll_BFu8s, aBFu7s_BFu16ll_BFu8s)
//============================================================================



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



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



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



static void Test_aBFu7s_BFu16ll_C()
{
  {
    init_simple_test("aBFu7s_BFu16ll_C");
    static STRUCT_IF_C aBFu7s_BFu16ll_C lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16ll_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16ll_C");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16ll_C");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16ll_C");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16ll_C, aBFu7s_BFu16ll_C)
//============================================================================



static void Test_aBFu7s_BFu16ll_D()
{
  {
    init_simple_test("aBFu7s_BFu16ll_D");
    static STRUCT_IF_C aBFu7s_BFu16ll_D lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu16ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16ll_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16ll_D");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16ll_D");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16ll_D");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16ll_D, aBFu7s_BFu16ll_D)
//============================================================================



static void Test_aBFu7s_BFu16ll_F()
{
  {
    init_simple_test("aBFu7s_BFu16ll_F");
    static STRUCT_IF_C aBFu7s_BFu16ll_F lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu16ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16ll_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16ll_F");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16ll_F");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16ll_F");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16ll_F, aBFu7s_BFu16ll_F)
//============================================================================



static void Test_aBFu7s_BFu16ll_I()
{
  {
    init_simple_test("aBFu7s_BFu16ll_I");
    static STRUCT_IF_C aBFu7s_BFu16ll_I lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu16ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16ll_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16ll_I");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16ll_I");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16ll_I");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16ll_I, aBFu7s_BFu16ll_I)
//============================================================================



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



static void Test_aBFu7s_BFu16ll_L()
{
  {
    init_simple_test("aBFu7s_BFu16ll_L");
    static STRUCT_IF_C aBFu7s_BFu16ll_L lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu16ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16ll_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16ll_L");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16ll_L");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16ll_L");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16ll_L, aBFu7s_BFu16ll_L)
//============================================================================



static void Test_aBFu7s_BFu16ll_S()
{
  {
    init_simple_test("aBFu7s_BFu16ll_S");
    static STRUCT_IF_C aBFu7s_BFu16ll_S lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu16ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16ll_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16ll_S");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16ll_S");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16ll_S");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16ll_S, aBFu7s_BFu16ll_S)
//============================================================================



static void Test_aBFu7s_BFu16ll_Uc()
{
  {
    init_simple_test("aBFu7s_BFu16ll_Uc");
    static STRUCT_IF_C aBFu7s_BFu16ll_Uc lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16ll_Uc");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16ll_Uc");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16ll_Uc");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16ll_Uc, aBFu7s_BFu16ll_Uc)
//============================================================================



static void Test_aBFu7s_BFu16ll_Ui()
{
  {
    init_simple_test("aBFu7s_BFu16ll_Ui");
    static STRUCT_IF_C aBFu7s_BFu16ll_Ui lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu16ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16ll_Ui");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16ll_Ui");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16ll_Ui");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16ll_Ui, aBFu7s_BFu16ll_Ui)
//============================================================================



static void Test_aBFu7s_BFu16ll_Ul()
{
  {
    init_simple_test("aBFu7s_BFu16ll_Ul");
    static STRUCT_IF_C aBFu7s_BFu16ll_Ul lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu16ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16ll_Ul");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16ll_Ul");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16ll_Ul");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16ll_Ul, aBFu7s_BFu16ll_Ul)
//============================================================================



static void Test_aBFu7s_BFu16ll_Us()
{
  {
    init_simple_test("aBFu7s_BFu16ll_Us");
    static STRUCT_IF_C aBFu7s_BFu16ll_Us lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu16ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16ll_Us");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16ll_Us");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16ll_Us");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16ll_Us, aBFu7s_BFu16ll_Us)
//============================================================================



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



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



static void Test_aBFu7s_BFu16s_BFu15i()
{
  {
    init_simple_test("aBFu7s_BFu16s_BFu15i");
    static STRUCT_IF_C aBFu7s_BFu16s_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu16s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16s_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16s_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16s_BFu15i");
    set_bf_and_test(lv, v3, 2, 7, 15, 1, "aBFu7s_BFu16s_BFu15i");
    set_bf_and_test(lv, v3, 2, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu16s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16s_BFu15i, aBFu7s_BFu16s_BFu15i)
//============================================================================



static void Test_aBFu7s_BFu16s_BFu15ll()
{
  {
    init_simple_test("aBFu7s_BFu16s_BFu15ll");
    static STRUCT_IF_C aBFu7s_BFu16s_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu16s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16s_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16s_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16s_BFu15ll");
    set_bf_and_test(lv, v3, 2, 7, 15, 1, "aBFu7s_BFu16s_BFu15ll");
    set_bf_and_test(lv, v3, 2, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu16s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16s_BFu15ll, aBFu7s_BFu16s_BFu15ll)
//============================================================================



static void Test_aBFu7s_BFu16s_BFu15s()
{
  {
    init_simple_test("aBFu7s_BFu16s_BFu15s");
    static STRUCT_IF_C aBFu7s_BFu16s_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu16s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16s_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16s_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16s_BFu15s");
    set_bf_and_test(lv, v3, 2, 7, 15, 1, "aBFu7s_BFu16s_BFu15s");
    set_bf_and_test(lv, v3, 2, 7, 15, hide_ull(1LL<<14), "aBFu7s_BFu16s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16s_BFu15s, aBFu7s_BFu16s_BFu15s)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu16s_BFu8c()
{
  {
    init_simple_test("aBFu7s_BFu16s_BFu8c");
    static STRUCT_IF_C aBFu7s_BFu16s_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16s_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16s_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16s_BFu8c");
    set_bf_and_test(lv, v3, 2, 7, 8, 1, "aBFu7s_BFu16s_BFu8c");
    set_bf_and_test(lv, v3, 2, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu16s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16s_BFu8c, aBFu7s_BFu16s_BFu8c)
//============================================================================



static void Test_aBFu7s_BFu16s_BFu8i()
{
  {
    init_simple_test("aBFu7s_BFu16s_BFu8i");
    static STRUCT_IF_C aBFu7s_BFu16s_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16s_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16s_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16s_BFu8i");
    set_bf_and_test(lv, v3, 2, 7, 8, 1, "aBFu7s_BFu16s_BFu8i");
    set_bf_and_test(lv, v3, 2, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu16s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16s_BFu8i, aBFu7s_BFu16s_BFu8i)
//============================================================================



static void Test_aBFu7s_BFu16s_BFu8ll()
{
  {
    init_simple_test("aBFu7s_BFu16s_BFu8ll");
    static STRUCT_IF_C aBFu7s_BFu16s_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16s_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16s_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 7, 8, 1, "aBFu7s_BFu16s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu16s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16s_BFu8ll, aBFu7s_BFu16s_BFu8ll)
//============================================================================



static void Test_aBFu7s_BFu16s_BFu8s()
{
  {
    init_simple_test("aBFu7s_BFu16s_BFu8s");
    static STRUCT_IF_C aBFu7s_BFu16s_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16s_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16s_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16s_BFu8s");
    set_bf_and_test(lv, v3, 2, 7, 8, 1, "aBFu7s_BFu16s_BFu8s");
    set_bf_and_test(lv, v3, 2, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu16s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16s_BFu8s, aBFu7s_BFu16s_BFu8s)
//============================================================================



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



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



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



static void Test_aBFu7s_BFu16s_C()
{
  {
    init_simple_test("aBFu7s_BFu16s_C");
    static STRUCT_IF_C aBFu7s_BFu16s_C lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16s_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16s_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16s_C");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16s_C");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16s_C");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16s_C, aBFu7s_BFu16s_C)
//============================================================================



static void Test_aBFu7s_BFu16s_D()
{
  {
    init_simple_test("aBFu7s_BFu16s_D");
    static STRUCT_IF_C aBFu7s_BFu16s_D lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu16s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16s_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16s_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16s_D");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16s_D");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16s_D");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16s_D, aBFu7s_BFu16s_D)
//============================================================================



static void Test_aBFu7s_BFu16s_F()
{
  {
    init_simple_test("aBFu7s_BFu16s_F");
    static STRUCT_IF_C aBFu7s_BFu16s_F lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu16s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16s_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16s_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16s_F");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16s_F");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16s_F");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16s_F, aBFu7s_BFu16s_F)
//============================================================================



static void Test_aBFu7s_BFu16s_I()
{
  {
    init_simple_test("aBFu7s_BFu16s_I");
    static STRUCT_IF_C aBFu7s_BFu16s_I lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu16s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16s_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16s_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16s_I");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16s_I");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16s_I");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16s_I, aBFu7s_BFu16s_I)
//============================================================================



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



static void Test_aBFu7s_BFu16s_L()
{
  {
    init_simple_test("aBFu7s_BFu16s_L");
    static STRUCT_IF_C aBFu7s_BFu16s_L lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu16s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16s_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16s_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16s_L");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16s_L");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16s_L");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16s_L, aBFu7s_BFu16s_L)
//============================================================================



static void Test_aBFu7s_BFu16s_S()
{
  {
    init_simple_test("aBFu7s_BFu16s_S");
    static STRUCT_IF_C aBFu7s_BFu16s_S lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu16s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16s_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16s_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16s_S");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16s_S");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16s_S");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16s_S, aBFu7s_BFu16s_S)
//============================================================================



static void Test_aBFu7s_BFu16s_Uc()
{
  {
    init_simple_test("aBFu7s_BFu16s_Uc");
    static STRUCT_IF_C aBFu7s_BFu16s_Uc lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu16s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16s_Uc");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16s_Uc");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16s_Uc");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16s_Uc, aBFu7s_BFu16s_Uc)
//============================================================================



static void Test_aBFu7s_BFu16s_Ui()
{
  {
    init_simple_test("aBFu7s_BFu16s_Ui");
    static STRUCT_IF_C aBFu7s_BFu16s_Ui lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu16s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16s_Ui");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16s_Ui");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16s_Ui");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16s_Ui, aBFu7s_BFu16s_Ui)
//============================================================================



static void Test_aBFu7s_BFu16s_Ul()
{
  {
    init_simple_test("aBFu7s_BFu16s_Ul");
    static STRUCT_IF_C aBFu7s_BFu16s_Ul lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_BFu16s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16s_Ul");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16s_Ul");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16s_Ul");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16s_Ul, aBFu7s_BFu16s_Ul)
//============================================================================



static void Test_aBFu7s_BFu16s_Us()
{
  {
    init_simple_test("aBFu7s_BFu16s_Us");
    static STRUCT_IF_C aBFu7s_BFu16s_Us lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu16s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu16s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu16s_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu16s_Us");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu7s_BFu16s_Us");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu16s_Us");
    check_field_offset(lv, v3, 3, "aBFu7s_BFu16s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu16s_Us, aBFu7s_BFu16s_Us)
//============================================================================



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



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



static void Test_aBFu7s_BFu17i_BFu15i()
{
  {
    init_simple_test("aBFu7s_BFu17i_BFu15i");
    static STRUCT_IF_C aBFu7s_BFu17i_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17i_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17i_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17i_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7s_BFu17i_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7s_BFu17i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17i_BFu15i, aBFu7s_BFu17i_BFu15i)
//============================================================================



static void Test_aBFu7s_BFu17i_BFu15ll()
{
  {
    init_simple_test("aBFu7s_BFu17i_BFu15ll");
    static STRUCT_IF_C aBFu7s_BFu17i_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17i_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17i_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17i_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7s_BFu17i_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7s_BFu17i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17i_BFu15ll, aBFu7s_BFu17i_BFu15ll)
//============================================================================



static void Test_aBFu7s_BFu17i_BFu15s()
{
  {
    init_simple_test("aBFu7s_BFu17i_BFu15s");
    static STRUCT_IF_C aBFu7s_BFu17i_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17i_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17i_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17i_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7s_BFu17i_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7s_BFu17i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17i_BFu15s, aBFu7s_BFu17i_BFu15s)
//============================================================================



static void Test_aBFu7s_BFu17i_BFu16i()
{
  {
    init_simple_test("aBFu7s_BFu17i_BFu16i");
    static STRUCT_IF_C aBFu7s_BFu17i_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17i_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17i_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17i_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7s_BFu17i_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7s_BFu17i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17i_BFu16i, aBFu7s_BFu17i_BFu16i)
//============================================================================



static void Test_aBFu7s_BFu17i_BFu16ll()
{
  {
    init_simple_test("aBFu7s_BFu17i_BFu16ll");
    static STRUCT_IF_C aBFu7s_BFu17i_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17i_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17i_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17i_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7s_BFu17i_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7s_BFu17i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17i_BFu16ll, aBFu7s_BFu17i_BFu16ll)
//============================================================================



static void Test_aBFu7s_BFu17i_BFu16s()
{
  {
    init_simple_test("aBFu7s_BFu17i_BFu16s");
    static STRUCT_IF_C aBFu7s_BFu17i_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17i_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17i_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17i_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7s_BFu17i_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7s_BFu17i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17i_BFu16s, aBFu7s_BFu17i_BFu16s)
//============================================================================



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu17i_BFu33()
{
  {
    init_simple_test("aBFu7s_BFu17i_BFu33");
    static STRUCT_IF_C aBFu7s_BFu17i_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7s_BFu17i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17i_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17i_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17i_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, 1, "aBFu7s_BFu17i_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, hide_ull(1LL<<32), "aBFu7s_BFu17i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17i_BFu33, aBFu7s_BFu17i_BFu33)
//============================================================================



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



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



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



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



static void Test_aBFu7s_BFu17i_BFu8c()
{
  {
    init_simple_test("aBFu7s_BFu17i_BFu8c");
    static STRUCT_IF_C aBFu7s_BFu17i_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu17i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17i_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17i_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17i_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7s_BFu17i_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu17i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17i_BFu8c, aBFu7s_BFu17i_BFu8c)
//============================================================================



static void Test_aBFu7s_BFu17i_BFu8i()
{
  {
    init_simple_test("aBFu7s_BFu17i_BFu8i");
    static STRUCT_IF_C aBFu7s_BFu17i_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu17i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17i_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17i_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17i_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7s_BFu17i_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu17i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17i_BFu8i, aBFu7s_BFu17i_BFu8i)
//============================================================================



static void Test_aBFu7s_BFu17i_BFu8ll()
{
  {
    init_simple_test("aBFu7s_BFu17i_BFu8ll");
    static STRUCT_IF_C aBFu7s_BFu17i_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu17i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17i_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7s_BFu17i_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu17i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17i_BFu8ll, aBFu7s_BFu17i_BFu8ll)
//============================================================================



static void Test_aBFu7s_BFu17i_BFu8s()
{
  {
    init_simple_test("aBFu7s_BFu17i_BFu8s");
    static STRUCT_IF_C aBFu7s_BFu17i_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu17i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17i_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17i_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17i_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7s_BFu17i_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu17i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17i_BFu8s, aBFu7s_BFu17i_BFu8s)
//============================================================================



static void Test_aBFu7s_BFu17i_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu17i_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu17i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17i_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17i_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17i_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7s_BFu17i_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu17i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17i_BFu9i, aBFu7s_BFu17i_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu17i_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu17i_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu17i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17i_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7s_BFu17i_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu17i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17i_BFu9ll, aBFu7s_BFu17i_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu17i_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu17i_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu17i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17i_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17i_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17i_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7s_BFu17i_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu17i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17i_BFu9s, aBFu7s_BFu17i_BFu9s)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu17ll_BFu15i()
{
  {
    init_simple_test("aBFu7s_BFu17ll_BFu15i");
    static STRUCT_IF_C aBFu7s_BFu17ll_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17ll_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17ll_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17ll_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7s_BFu17ll_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7s_BFu17ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17ll_BFu15i, aBFu7s_BFu17ll_BFu15i)
//============================================================================



static void Test_aBFu7s_BFu17ll_BFu15ll()
{
  {
    init_simple_test("aBFu7s_BFu17ll_BFu15ll");
    static STRUCT_IF_C aBFu7s_BFu17ll_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7s_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7s_BFu17ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17ll_BFu15ll, aBFu7s_BFu17ll_BFu15ll)
//============================================================================



static void Test_aBFu7s_BFu17ll_BFu15s()
{
  {
    init_simple_test("aBFu7s_BFu17ll_BFu15s");
    static STRUCT_IF_C aBFu7s_BFu17ll_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17ll_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17ll_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17ll_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7s_BFu17ll_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7s_BFu17ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17ll_BFu15s, aBFu7s_BFu17ll_BFu15s)
//============================================================================



static void Test_aBFu7s_BFu17ll_BFu16i()
{
  {
    init_simple_test("aBFu7s_BFu17ll_BFu16i");
    static STRUCT_IF_C aBFu7s_BFu17ll_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17ll_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17ll_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17ll_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7s_BFu17ll_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7s_BFu17ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17ll_BFu16i, aBFu7s_BFu17ll_BFu16i)
//============================================================================



static void Test_aBFu7s_BFu17ll_BFu16ll()
{
  {
    init_simple_test("aBFu7s_BFu17ll_BFu16ll");
    static STRUCT_IF_C aBFu7s_BFu17ll_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7s_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7s_BFu17ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17ll_BFu16ll, aBFu7s_BFu17ll_BFu16ll)
//============================================================================



static void Test_aBFu7s_BFu17ll_BFu16s()
{
  {
    init_simple_test("aBFu7s_BFu17ll_BFu16s");
    static STRUCT_IF_C aBFu7s_BFu17ll_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17ll_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17ll_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17ll_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7s_BFu17ll_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7s_BFu17ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17ll_BFu16s, aBFu7s_BFu17ll_BFu16s)
//============================================================================



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu17ll_BFu33()
{
  {
    init_simple_test("aBFu7s_BFu17ll_BFu33");
    static STRUCT_IF_C aBFu7s_BFu17ll_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7s_BFu17ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17ll_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17ll_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17ll_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, 1, "aBFu7s_BFu17ll_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, hide_ull(1LL<<32), "aBFu7s_BFu17ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17ll_BFu33, aBFu7s_BFu17ll_BFu33)
//============================================================================



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



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



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



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



static void Test_aBFu7s_BFu17ll_BFu8c()
{
  {
    init_simple_test("aBFu7s_BFu17ll_BFu8c");
    static STRUCT_IF_C aBFu7s_BFu17ll_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu17ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17ll_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7s_BFu17ll_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu17ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17ll_BFu8c, aBFu7s_BFu17ll_BFu8c)
//============================================================================



static void Test_aBFu7s_BFu17ll_BFu8i()
{
  {
    init_simple_test("aBFu7s_BFu17ll_BFu8i");
    static STRUCT_IF_C aBFu7s_BFu17ll_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu17ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17ll_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7s_BFu17ll_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu17ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17ll_BFu8i, aBFu7s_BFu17ll_BFu8i)
//============================================================================



static void Test_aBFu7s_BFu17ll_BFu8ll()
{
  {
    init_simple_test("aBFu7s_BFu17ll_BFu8ll");
    static STRUCT_IF_C aBFu7s_BFu17ll_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu17ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7s_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu17ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17ll_BFu8ll, aBFu7s_BFu17ll_BFu8ll)
//============================================================================



static void Test_aBFu7s_BFu17ll_BFu8s()
{
  {
    init_simple_test("aBFu7s_BFu17ll_BFu8s");
    static STRUCT_IF_C aBFu7s_BFu17ll_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu17ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17ll_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7s_BFu17ll_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu17ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17ll_BFu8s, aBFu7s_BFu17ll_BFu8s)
//============================================================================



static void Test_aBFu7s_BFu17ll_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu17ll_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu17ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17ll_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7s_BFu17ll_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu17ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17ll_BFu9i, aBFu7s_BFu17ll_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu17ll_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu17ll_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu17ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7s_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu17ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17ll_BFu9ll, aBFu7s_BFu17ll_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu17ll_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu17ll_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu17ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu17ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu17ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu17ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu17ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu7s_BFu17ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu7s_BFu17ll_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7s_BFu17ll_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu17ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu17ll_BFu9s, aBFu7s_BFu17ll_BFu9s)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu1c_BFu17i()
{
  {
    init_simple_test("aBFu7s_BFu1c_BFu17i");
    static STRUCT_IF_C aBFu7s_BFu1c_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu1c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1c_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1c_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1c_BFu17i");
    set_bf_and_test(lv, v3, 1, 0, 17, 1, "aBFu7s_BFu1c_BFu17i");
    set_bf_and_test(lv, v3, 1, 0, 17, hide_ull(1LL<<16), "aBFu7s_BFu1c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1c_BFu17i, aBFu7s_BFu1c_BFu17i)
//============================================================================



static void Test_aBFu7s_BFu1c_BFu17ll()
{
  {
    init_simple_test("aBFu7s_BFu1c_BFu17ll");
    static STRUCT_IF_C aBFu7s_BFu1c_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu1c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1c_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1c_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1c_BFu17ll");
    set_bf_and_test(lv, v3, 1, 0, 17, 1, "aBFu7s_BFu1c_BFu17ll");
    set_bf_and_test(lv, v3, 1, 0, 17, hide_ull(1LL<<16), "aBFu7s_BFu1c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1c_BFu17ll, aBFu7s_BFu1c_BFu17ll)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu1c_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu1c_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu1c_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1c_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1c_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1c_BFu9i");
    set_bf_and_test(lv, v3, 1, 0, 9, 1, "aBFu7s_BFu1c_BFu9i");
    set_bf_and_test(lv, v3, 1, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu1c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1c_BFu9i, aBFu7s_BFu1c_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu1c_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu1c_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu1c_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1c_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1c_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1c_BFu9ll");
    set_bf_and_test(lv, v3, 1, 0, 9, 1, "aBFu7s_BFu1c_BFu9ll");
    set_bf_and_test(lv, v3, 1, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu1c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1c_BFu9ll, aBFu7s_BFu1c_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu1c_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu1c_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu1c_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1c_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1c_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1c_BFu9s");
    set_bf_and_test(lv, v3, 1, 0, 9, 1, "aBFu7s_BFu1c_BFu9s");
    set_bf_and_test(lv, v3, 1, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu1c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1c_BFu9s, aBFu7s_BFu1c_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu1c_C()
{
  {
    init_simple_test("aBFu7s_BFu1c_C");
    static STRUCT_IF_C aBFu7s_BFu1c_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu7s_BFu1c_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1c_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1c_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1c_C");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1c_C");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1c_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1c_C, aBFu7s_BFu1c_C)
//============================================================================



static void Test_aBFu7s_BFu1c_D()
{
  {
    init_simple_test("aBFu7s_BFu1c_D");
    static STRUCT_IF_C aBFu7s_BFu1c_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu1c_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1c_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1c_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1c_D");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1c_D");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1c_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1c_D, aBFu7s_BFu1c_D)
//============================================================================



static void Test_aBFu7s_BFu1c_F()
{
  {
    init_simple_test("aBFu7s_BFu1c_F");
    static STRUCT_IF_C aBFu7s_BFu1c_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu1c_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1c_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1c_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1c_F");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1c_F");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1c_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1c_F, aBFu7s_BFu1c_F)
//============================================================================



static void Test_aBFu7s_BFu1c_I()
{
  {
    init_simple_test("aBFu7s_BFu1c_I");
    static STRUCT_IF_C aBFu7s_BFu1c_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu1c_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1c_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1c_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1c_I");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1c_I");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1c_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1c_I, aBFu7s_BFu1c_I)
//============================================================================



static void Test_aBFu7s_BFu1c_Ip()
{
  {
    init_simple_test("aBFu7s_BFu1c_Ip");
    static STRUCT_IF_C aBFu7s_BFu1c_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu7s_BFu1c_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1c_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1c_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1c_Ip");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1c_Ip");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1c_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1c_Ip, aBFu7s_BFu1c_Ip)
//============================================================================



static void Test_aBFu7s_BFu1c_L()
{
  {
    init_simple_test("aBFu7s_BFu1c_L");
    static STRUCT_IF_C aBFu7s_BFu1c_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu1c_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1c_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1c_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1c_L");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1c_L");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1c_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1c_L, aBFu7s_BFu1c_L)
//============================================================================



static void Test_aBFu7s_BFu1c_S()
{
  {
    init_simple_test("aBFu7s_BFu1c_S");
    static STRUCT_IF_C aBFu7s_BFu1c_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1c_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1c_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1c_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1c_S");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1c_S");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1c_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1c_S, aBFu7s_BFu1c_S)
//============================================================================



static void Test_aBFu7s_BFu1c_Uc()
{
  {
    init_simple_test("aBFu7s_BFu1c_Uc");
    static STRUCT_IF_C aBFu7s_BFu1c_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu7s_BFu1c_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1c_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1c_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1c_Uc");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1c_Uc");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1c_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1c_Uc, aBFu7s_BFu1c_Uc)
//============================================================================



static void Test_aBFu7s_BFu1c_Ui()
{
  {
    init_simple_test("aBFu7s_BFu1c_Ui");
    static STRUCT_IF_C aBFu7s_BFu1c_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu1c_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1c_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1c_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1c_Ui");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1c_Ui");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1c_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1c_Ui, aBFu7s_BFu1c_Ui)
//============================================================================



static void Test_aBFu7s_BFu1c_Ul()
{
  {
    init_simple_test("aBFu7s_BFu1c_Ul");
    static STRUCT_IF_C aBFu7s_BFu1c_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu1c_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1c_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1c_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1c_Ul");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1c_Ul");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1c_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1c_Ul, aBFu7s_BFu1c_Ul)
//============================================================================



static void Test_aBFu7s_BFu1c_Us()
{
  {
    init_simple_test("aBFu7s_BFu1c_Us");
    static STRUCT_IF_C aBFu7s_BFu1c_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1c_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1c_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1c_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1c_Us");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1c_Us");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1c_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1c_Us, aBFu7s_BFu1c_Us)
//============================================================================



static void Test_aBFu7s_BFu1c_Vp()
{
  {
    init_simple_test("aBFu7s_BFu1c_Vp");
    static STRUCT_IF_C aBFu7s_BFu1c_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu7s_BFu1c_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1c_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1c_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1c_Vp");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1c_Vp");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1c_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1c_Vp, aBFu7s_BFu1c_Vp)
//============================================================================



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu1i_BFu17i()
{
  {
    init_simple_test("aBFu7s_BFu1i_BFu17i");
    static STRUCT_IF_C aBFu7s_BFu1i_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu1i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1i_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1i_BFu17i");
    set_bf_and_test(lv, v3, 1, 0, 17, 1, "aBFu7s_BFu1i_BFu17i");
    set_bf_and_test(lv, v3, 1, 0, 17, hide_ull(1LL<<16), "aBFu7s_BFu1i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1i_BFu17i, aBFu7s_BFu1i_BFu17i)
//============================================================================



static void Test_aBFu7s_BFu1i_BFu17ll()
{
  {
    init_simple_test("aBFu7s_BFu1i_BFu17ll");
    static STRUCT_IF_C aBFu7s_BFu1i_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu1i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1i_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1i_BFu17ll");
    set_bf_and_test(lv, v3, 1, 0, 17, 1, "aBFu7s_BFu1i_BFu17ll");
    set_bf_and_test(lv, v3, 1, 0, 17, hide_ull(1LL<<16), "aBFu7s_BFu1i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1i_BFu17ll, aBFu7s_BFu1i_BFu17ll)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu1i_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu1i_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu1i_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1i_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1i_BFu9i");
    set_bf_and_test(lv, v3, 1, 0, 9, 1, "aBFu7s_BFu1i_BFu9i");
    set_bf_and_test(lv, v3, 1, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu1i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1i_BFu9i, aBFu7s_BFu1i_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu1i_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu1i_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu1i_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1i_BFu9ll");
    set_bf_and_test(lv, v3, 1, 0, 9, 1, "aBFu7s_BFu1i_BFu9ll");
    set_bf_and_test(lv, v3, 1, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu1i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1i_BFu9ll, aBFu7s_BFu1i_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu1i_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu1i_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu1i_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1i_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1i_BFu9s");
    set_bf_and_test(lv, v3, 1, 0, 9, 1, "aBFu7s_BFu1i_BFu9s");
    set_bf_and_test(lv, v3, 1, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu1i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1i_BFu9s, aBFu7s_BFu1i_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu1i_C()
{
  {
    init_simple_test("aBFu7s_BFu1i_C");
    static STRUCT_IF_C aBFu7s_BFu1i_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu7s_BFu1i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1i_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1i_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1i_C");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1i_C");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1i_C, aBFu7s_BFu1i_C)
//============================================================================



static void Test_aBFu7s_BFu1i_D()
{
  {
    init_simple_test("aBFu7s_BFu1i_D");
    static STRUCT_IF_C aBFu7s_BFu1i_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu1i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1i_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1i_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1i_D");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1i_D");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1i_D, aBFu7s_BFu1i_D)
//============================================================================



static void Test_aBFu7s_BFu1i_F()
{
  {
    init_simple_test("aBFu7s_BFu1i_F");
    static STRUCT_IF_C aBFu7s_BFu1i_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu1i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1i_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1i_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1i_F");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1i_F");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1i_F, aBFu7s_BFu1i_F)
//============================================================================



static void Test_aBFu7s_BFu1i_I()
{
  {
    init_simple_test("aBFu7s_BFu1i_I");
    static STRUCT_IF_C aBFu7s_BFu1i_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu1i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1i_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1i_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1i_I");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1i_I");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1i_I, aBFu7s_BFu1i_I)
//============================================================================



static void Test_aBFu7s_BFu1i_Ip()
{
  {
    init_simple_test("aBFu7s_BFu1i_Ip");
    static STRUCT_IF_C aBFu7s_BFu1i_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu7s_BFu1i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1i_Ip");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1i_Ip");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1i_Ip, aBFu7s_BFu1i_Ip)
//============================================================================



static void Test_aBFu7s_BFu1i_L()
{
  {
    init_simple_test("aBFu7s_BFu1i_L");
    static STRUCT_IF_C aBFu7s_BFu1i_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu1i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1i_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1i_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1i_L");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1i_L");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1i_L, aBFu7s_BFu1i_L)
//============================================================================



static void Test_aBFu7s_BFu1i_S()
{
  {
    init_simple_test("aBFu7s_BFu1i_S");
    static STRUCT_IF_C aBFu7s_BFu1i_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1i_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1i_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1i_S");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1i_S");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1i_S, aBFu7s_BFu1i_S)
//============================================================================



static void Test_aBFu7s_BFu1i_Uc()
{
  {
    init_simple_test("aBFu7s_BFu1i_Uc");
    static STRUCT_IF_C aBFu7s_BFu1i_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu7s_BFu1i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1i_Uc");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1i_Uc");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1i_Uc, aBFu7s_BFu1i_Uc)
//============================================================================



static void Test_aBFu7s_BFu1i_Ui()
{
  {
    init_simple_test("aBFu7s_BFu1i_Ui");
    static STRUCT_IF_C aBFu7s_BFu1i_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu1i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1i_Ui");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1i_Ui");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1i_Ui, aBFu7s_BFu1i_Ui)
//============================================================================



static void Test_aBFu7s_BFu1i_Ul()
{
  {
    init_simple_test("aBFu7s_BFu1i_Ul");
    static STRUCT_IF_C aBFu7s_BFu1i_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu1i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1i_Ul");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1i_Ul");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1i_Ul, aBFu7s_BFu1i_Ul)
//============================================================================



static void Test_aBFu7s_BFu1i_Us()
{
  {
    init_simple_test("aBFu7s_BFu1i_Us");
    static STRUCT_IF_C aBFu7s_BFu1i_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1i_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1i_Us");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1i_Us");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1i_Us, aBFu7s_BFu1i_Us)
//============================================================================



static void Test_aBFu7s_BFu1i_Vp()
{
  {
    init_simple_test("aBFu7s_BFu1i_Vp");
    static STRUCT_IF_C aBFu7s_BFu1i_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu7s_BFu1i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1i_Vp");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1i_Vp");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1i_Vp, aBFu7s_BFu1i_Vp)
//============================================================================



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu1ll_BFu17i()
{
  {
    init_simple_test("aBFu7s_BFu1ll_BFu17i");
    static STRUCT_IF_C aBFu7s_BFu1ll_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu1ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1ll_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1ll_BFu17i");
    set_bf_and_test(lv, v3, 1, 0, 17, 1, "aBFu7s_BFu1ll_BFu17i");
    set_bf_and_test(lv, v3, 1, 0, 17, hide_ull(1LL<<16), "aBFu7s_BFu1ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1ll_BFu17i, aBFu7s_BFu1ll_BFu17i)
//============================================================================



static void Test_aBFu7s_BFu1ll_BFu17ll()
{
  {
    init_simple_test("aBFu7s_BFu1ll_BFu17ll");
    static STRUCT_IF_C aBFu7s_BFu1ll_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu1ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1ll_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1ll_BFu17ll");
    set_bf_and_test(lv, v3, 1, 0, 17, 1, "aBFu7s_BFu1ll_BFu17ll");
    set_bf_and_test(lv, v3, 1, 0, 17, hide_ull(1LL<<16), "aBFu7s_BFu1ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1ll_BFu17ll, aBFu7s_BFu1ll_BFu17ll)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu1ll_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu1ll_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu1ll_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1ll_BFu9i");
    set_bf_and_test(lv, v3, 1, 0, 9, 1, "aBFu7s_BFu1ll_BFu9i");
    set_bf_and_test(lv, v3, 1, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu1ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1ll_BFu9i, aBFu7s_BFu1ll_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu1ll_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu1ll_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu1ll_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1ll_BFu9ll");
    set_bf_and_test(lv, v3, 1, 0, 9, 1, "aBFu7s_BFu1ll_BFu9ll");
    set_bf_and_test(lv, v3, 1, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu1ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1ll_BFu9ll, aBFu7s_BFu1ll_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu1ll_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu1ll_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu1ll_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1ll_BFu9s");
    set_bf_and_test(lv, v3, 1, 0, 9, 1, "aBFu7s_BFu1ll_BFu9s");
    set_bf_and_test(lv, v3, 1, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu1ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1ll_BFu9s, aBFu7s_BFu1ll_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu1ll_C()
{
  {
    init_simple_test("aBFu7s_BFu1ll_C");
    static STRUCT_IF_C aBFu7s_BFu1ll_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu7s_BFu1ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1ll_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1ll_C");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1ll_C");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1ll_C, aBFu7s_BFu1ll_C)
//============================================================================



static void Test_aBFu7s_BFu1ll_D()
{
  {
    init_simple_test("aBFu7s_BFu1ll_D");
    static STRUCT_IF_C aBFu7s_BFu1ll_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu1ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1ll_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1ll_D");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1ll_D");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1ll_D, aBFu7s_BFu1ll_D)
//============================================================================



static void Test_aBFu7s_BFu1ll_F()
{
  {
    init_simple_test("aBFu7s_BFu1ll_F");
    static STRUCT_IF_C aBFu7s_BFu1ll_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu1ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1ll_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1ll_F");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1ll_F");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1ll_F, aBFu7s_BFu1ll_F)
//============================================================================



static void Test_aBFu7s_BFu1ll_I()
{
  {
    init_simple_test("aBFu7s_BFu1ll_I");
    static STRUCT_IF_C aBFu7s_BFu1ll_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu1ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1ll_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1ll_I");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1ll_I");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1ll_I, aBFu7s_BFu1ll_I)
//============================================================================



static void Test_aBFu7s_BFu1ll_Ip()
{
  {
    init_simple_test("aBFu7s_BFu1ll_Ip");
    static STRUCT_IF_C aBFu7s_BFu1ll_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu7s_BFu1ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1ll_Ip");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1ll_Ip");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1ll_Ip, aBFu7s_BFu1ll_Ip)
//============================================================================



static void Test_aBFu7s_BFu1ll_L()
{
  {
    init_simple_test("aBFu7s_BFu1ll_L");
    static STRUCT_IF_C aBFu7s_BFu1ll_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu1ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1ll_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1ll_L");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1ll_L");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1ll_L, aBFu7s_BFu1ll_L)
//============================================================================



static void Test_aBFu7s_BFu1ll_S()
{
  {
    init_simple_test("aBFu7s_BFu1ll_S");
    static STRUCT_IF_C aBFu7s_BFu1ll_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1ll_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1ll_S");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1ll_S");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1ll_S, aBFu7s_BFu1ll_S)
//============================================================================



static void Test_aBFu7s_BFu1ll_Uc()
{
  {
    init_simple_test("aBFu7s_BFu1ll_Uc");
    static STRUCT_IF_C aBFu7s_BFu1ll_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu7s_BFu1ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1ll_Uc");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1ll_Uc");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1ll_Uc, aBFu7s_BFu1ll_Uc)
//============================================================================



static void Test_aBFu7s_BFu1ll_Ui()
{
  {
    init_simple_test("aBFu7s_BFu1ll_Ui");
    static STRUCT_IF_C aBFu7s_BFu1ll_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu1ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1ll_Ui");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1ll_Ui");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1ll_Ui, aBFu7s_BFu1ll_Ui)
//============================================================================



static void Test_aBFu7s_BFu1ll_Ul()
{
  {
    init_simple_test("aBFu7s_BFu1ll_Ul");
    static STRUCT_IF_C aBFu7s_BFu1ll_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu1ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1ll_Ul");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1ll_Ul");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1ll_Ul, aBFu7s_BFu1ll_Ul)
//============================================================================



static void Test_aBFu7s_BFu1ll_Us()
{
  {
    init_simple_test("aBFu7s_BFu1ll_Us");
    static STRUCT_IF_C aBFu7s_BFu1ll_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1ll_Us");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1ll_Us");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1ll_Us, aBFu7s_BFu1ll_Us)
//============================================================================



static void Test_aBFu7s_BFu1ll_Vp()
{
  {
    init_simple_test("aBFu7s_BFu1ll_Vp");
    static STRUCT_IF_C aBFu7s_BFu1ll_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu7s_BFu1ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1ll_Vp");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1ll_Vp");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1ll_Vp, aBFu7s_BFu1ll_Vp)
//============================================================================



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu1s_BFu17i()
{
  {
    init_simple_test("aBFu7s_BFu1s_BFu17i");
    static STRUCT_IF_C aBFu7s_BFu1s_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu1s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1s_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1s_BFu17i");
    set_bf_and_test(lv, v3, 1, 0, 17, 1, "aBFu7s_BFu1s_BFu17i");
    set_bf_and_test(lv, v3, 1, 0, 17, hide_ull(1LL<<16), "aBFu7s_BFu1s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1s_BFu17i, aBFu7s_BFu1s_BFu17i)
//============================================================================



static void Test_aBFu7s_BFu1s_BFu17ll()
{
  {
    init_simple_test("aBFu7s_BFu1s_BFu17ll");
    static STRUCT_IF_C aBFu7s_BFu1s_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu1s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1s_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1s_BFu17ll");
    set_bf_and_test(lv, v3, 1, 0, 17, 1, "aBFu7s_BFu1s_BFu17ll");
    set_bf_and_test(lv, v3, 1, 0, 17, hide_ull(1LL<<16), "aBFu7s_BFu1s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1s_BFu17ll, aBFu7s_BFu1s_BFu17ll)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu1s_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu1s_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu1s_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1s_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1s_BFu9i");
    set_bf_and_test(lv, v3, 1, 0, 9, 1, "aBFu7s_BFu1s_BFu9i");
    set_bf_and_test(lv, v3, 1, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu1s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1s_BFu9i, aBFu7s_BFu1s_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu1s_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu1s_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu1s_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1s_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1s_BFu9ll");
    set_bf_and_test(lv, v3, 1, 0, 9, 1, "aBFu7s_BFu1s_BFu9ll");
    set_bf_and_test(lv, v3, 1, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu1s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1s_BFu9ll, aBFu7s_BFu1s_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu1s_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu1s_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu1s_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1s_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1s_BFu9s");
    set_bf_and_test(lv, v3, 1, 0, 9, 1, "aBFu7s_BFu1s_BFu9s");
    set_bf_and_test(lv, v3, 1, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu1s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1s_BFu9s, aBFu7s_BFu1s_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu1s_C()
{
  {
    init_simple_test("aBFu7s_BFu1s_C");
    static STRUCT_IF_C aBFu7s_BFu1s_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu7s_BFu1s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1s_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1s_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1s_C");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1s_C");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1s_C, aBFu7s_BFu1s_C)
//============================================================================



static void Test_aBFu7s_BFu1s_D()
{
  {
    init_simple_test("aBFu7s_BFu1s_D");
    static STRUCT_IF_C aBFu7s_BFu1s_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu1s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1s_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1s_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1s_D");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1s_D");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1s_D, aBFu7s_BFu1s_D)
//============================================================================



static void Test_aBFu7s_BFu1s_F()
{
  {
    init_simple_test("aBFu7s_BFu1s_F");
    static STRUCT_IF_C aBFu7s_BFu1s_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu1s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1s_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1s_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1s_F");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1s_F");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1s_F, aBFu7s_BFu1s_F)
//============================================================================



static void Test_aBFu7s_BFu1s_I()
{
  {
    init_simple_test("aBFu7s_BFu1s_I");
    static STRUCT_IF_C aBFu7s_BFu1s_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu1s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1s_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1s_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1s_I");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1s_I");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1s_I, aBFu7s_BFu1s_I)
//============================================================================



static void Test_aBFu7s_BFu1s_Ip()
{
  {
    init_simple_test("aBFu7s_BFu1s_Ip");
    static STRUCT_IF_C aBFu7s_BFu1s_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu7s_BFu1s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1s_Ip");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1s_Ip");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1s_Ip, aBFu7s_BFu1s_Ip)
//============================================================================



static void Test_aBFu7s_BFu1s_L()
{
  {
    init_simple_test("aBFu7s_BFu1s_L");
    static STRUCT_IF_C aBFu7s_BFu1s_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu1s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1s_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1s_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1s_L");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1s_L");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1s_L, aBFu7s_BFu1s_L)
//============================================================================



static void Test_aBFu7s_BFu1s_S()
{
  {
    init_simple_test("aBFu7s_BFu1s_S");
    static STRUCT_IF_C aBFu7s_BFu1s_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1s_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1s_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1s_S");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1s_S");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1s_S, aBFu7s_BFu1s_S)
//============================================================================



static void Test_aBFu7s_BFu1s_Uc()
{
  {
    init_simple_test("aBFu7s_BFu1s_Uc");
    static STRUCT_IF_C aBFu7s_BFu1s_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu7s_BFu1s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1s_Uc");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1s_Uc");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1s_Uc, aBFu7s_BFu1s_Uc)
//============================================================================



static void Test_aBFu7s_BFu1s_Ui()
{
  {
    init_simple_test("aBFu7s_BFu1s_Ui");
    static STRUCT_IF_C aBFu7s_BFu1s_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu1s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1s_Ui");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1s_Ui");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1s_Ui, aBFu7s_BFu1s_Ui)
//============================================================================



static void Test_aBFu7s_BFu1s_Ul()
{
  {
    init_simple_test("aBFu7s_BFu1s_Ul");
    static STRUCT_IF_C aBFu7s_BFu1s_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu1s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1s_Ul");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1s_Ul");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1s_Ul, aBFu7s_BFu1s_Ul)
//============================================================================



static void Test_aBFu7s_BFu1s_Us()
{
  {
    init_simple_test("aBFu7s_BFu1s_Us");
    static STRUCT_IF_C aBFu7s_BFu1s_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu1s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1s_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1s_Us");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1s_Us");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1s_Us, aBFu7s_BFu1s_Us)
//============================================================================



static void Test_aBFu7s_BFu1s_Vp()
{
  {
    init_simple_test("aBFu7s_BFu1s_Vp");
    static STRUCT_IF_C aBFu7s_BFu1s_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu7s_BFu1s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu1s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu1s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu1s_Vp");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu7s_BFu1s_Vp");
    check_field_offset(lv, v3, 1, "aBFu7s_BFu1s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu1s_Vp, aBFu7s_BFu1s_Vp)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu31i_BFu31i()
{
  {
    init_simple_test("aBFu7s_BFu31i_BFu31i");
    static STRUCT_IF_C aBFu7s_BFu31i_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu31i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_BFu31i");
    set_bf_and_test(lv, v3, 4, 6, 31, 1, "aBFu7s_BFu31i_BFu31i");
    set_bf_and_test(lv, v3, 4, 6, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_BFu31i, aBFu7s_BFu31i_BFu31i)
//============================================================================



static void Test_aBFu7s_BFu31i_BFu31ll()
{
  {
    init_simple_test("aBFu7s_BFu31i_BFu31ll");
    static STRUCT_IF_C aBFu7s_BFu31i_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu31i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_BFu31ll");
    set_bf_and_test(lv, v3, 4, 6, 31, 1, "aBFu7s_BFu31i_BFu31ll");
    set_bf_and_test(lv, v3, 4, 6, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_BFu31ll, aBFu7s_BFu31i_BFu31ll)
//============================================================================



static void Test_aBFu7s_BFu31i_BFu32i()
{
  {
    init_simple_test("aBFu7s_BFu31i_BFu32i");
    static STRUCT_IF_C aBFu7s_BFu31i_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu31i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_BFu32i");
    set_bf_and_test(lv, v3, 4, 6, 32, 1, "aBFu7s_BFu31i_BFu32i");
    set_bf_and_test(lv, v3, 4, 6, 32, hide_ull(1LL<<31), "aBFu7s_BFu31i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_BFu32i, aBFu7s_BFu31i_BFu32i)
//============================================================================



static void Test_aBFu7s_BFu31i_BFu32ll()
{
  {
    init_simple_test("aBFu7s_BFu31i_BFu32ll");
    static STRUCT_IF_C aBFu7s_BFu31i_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu31i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_BFu32ll");
    set_bf_and_test(lv, v3, 4, 6, 32, 1, "aBFu7s_BFu31i_BFu32ll");
    set_bf_and_test(lv, v3, 4, 6, 32, hide_ull(1LL<<31), "aBFu7s_BFu31i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_BFu32ll, aBFu7s_BFu31i_BFu32ll)
//============================================================================



static void Test_aBFu7s_BFu31i_BFu33()
{
  {
    init_simple_test("aBFu7s_BFu31i_BFu33");
    static STRUCT_IF_C aBFu7s_BFu31i_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu31i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_BFu33");
    set_bf_and_test(lv, v3, 4, 6, 33, 1, "aBFu7s_BFu31i_BFu33");
    set_bf_and_test(lv, v3, 4, 6, 33, hide_ull(1LL<<32), "aBFu7s_BFu31i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_BFu33, aBFu7s_BFu31i_BFu33)
//============================================================================



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



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



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



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



static void Test_aBFu7s_BFu31i_BFu8c()
{
  {
    init_simple_test("aBFu7s_BFu31i_BFu8c");
    static STRUCT_IF_C aBFu7s_BFu31i_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_BFu8c");
    set_bf_and_test(lv, v3, 4, 6, 8, 1, "aBFu7s_BFu31i_BFu8c");
    set_bf_and_test(lv, v3, 4, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu31i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_BFu8c, aBFu7s_BFu31i_BFu8c)
//============================================================================



static void Test_aBFu7s_BFu31i_BFu8i()
{
  {
    init_simple_test("aBFu7s_BFu31i_BFu8i");
    static STRUCT_IF_C aBFu7s_BFu31i_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_BFu8i");
    set_bf_and_test(lv, v3, 4, 6, 8, 1, "aBFu7s_BFu31i_BFu8i");
    set_bf_and_test(lv, v3, 4, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu31i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_BFu8i, aBFu7s_BFu31i_BFu8i)
//============================================================================



static void Test_aBFu7s_BFu31i_BFu8ll()
{
  {
    init_simple_test("aBFu7s_BFu31i_BFu8ll");
    static STRUCT_IF_C aBFu7s_BFu31i_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_BFu8ll");
    set_bf_and_test(lv, v3, 4, 6, 8, 1, "aBFu7s_BFu31i_BFu8ll");
    set_bf_and_test(lv, v3, 4, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu31i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_BFu8ll, aBFu7s_BFu31i_BFu8ll)
//============================================================================



static void Test_aBFu7s_BFu31i_BFu8s()
{
  {
    init_simple_test("aBFu7s_BFu31i_BFu8s");
    static STRUCT_IF_C aBFu7s_BFu31i_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_BFu8s");
    set_bf_and_test(lv, v3, 4, 6, 8, 1, "aBFu7s_BFu31i_BFu8s");
    set_bf_and_test(lv, v3, 4, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu31i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_BFu8s, aBFu7s_BFu31i_BFu8s)
//============================================================================



static void Test_aBFu7s_BFu31i_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu31i_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu31i_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_BFu9i");
    set_bf_and_test(lv, v3, 4, 6, 9, 1, "aBFu7s_BFu31i_BFu9i");
    set_bf_and_test(lv, v3, 4, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu31i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_BFu9i, aBFu7s_BFu31i_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu31i_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu31i_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu31i_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_BFu9ll");
    set_bf_and_test(lv, v3, 4, 6, 9, 1, "aBFu7s_BFu31i_BFu9ll");
    set_bf_and_test(lv, v3, 4, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu31i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_BFu9ll, aBFu7s_BFu31i_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu31i_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu31i_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu31i_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_BFu9s");
    set_bf_and_test(lv, v3, 4, 6, 9, 1, "aBFu7s_BFu31i_BFu9s");
    set_bf_and_test(lv, v3, 4, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu31i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_BFu9s, aBFu7s_BFu31i_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu31i_C()
{
  {
    init_simple_test("aBFu7s_BFu31i_C");
    static STRUCT_IF_C aBFu7s_BFu31i_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_C");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_C");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_C");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_C, aBFu7s_BFu31i_C)
//============================================================================



static void Test_aBFu7s_BFu31i_D()
{
  {
    init_simple_test("aBFu7s_BFu31i_D");
    static STRUCT_IF_C aBFu7s_BFu31i_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_BFu31i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_D");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_D");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_D");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_D, aBFu7s_BFu31i_D)
//============================================================================



static void Test_aBFu7s_BFu31i_F()
{
  {
    init_simple_test("aBFu7s_BFu31i_F");
    static STRUCT_IF_C aBFu7s_BFu31i_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu31i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_F");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_F");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_F");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_F, aBFu7s_BFu31i_F)
//============================================================================



static void Test_aBFu7s_BFu31i_I()
{
  {
    init_simple_test("aBFu7s_BFu31i_I");
    static STRUCT_IF_C aBFu7s_BFu31i_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu31i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_I");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_I");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_I");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_I, aBFu7s_BFu31i_I)
//============================================================================



static void Test_aBFu7s_BFu31i_Ip()
{
  {
    init_simple_test("aBFu7s_BFu31i_Ip");
    static STRUCT_IF_C aBFu7s_BFu31i_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_BFu31i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_Ip");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_Ip");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_Ip");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_Ip, aBFu7s_BFu31i_Ip)
//============================================================================



static void Test_aBFu7s_BFu31i_L()
{
  {
    init_simple_test("aBFu7s_BFu31i_L");
    static STRUCT_IF_C aBFu7s_BFu31i_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_BFu31i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_L");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_L");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_L");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_L, aBFu7s_BFu31i_L)
//============================================================================



static void Test_aBFu7s_BFu31i_S()
{
  {
    init_simple_test("aBFu7s_BFu31i_S");
    static STRUCT_IF_C aBFu7s_BFu31i_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu31i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_S");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_S");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_S");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_S, aBFu7s_BFu31i_S)
//============================================================================



static void Test_aBFu7s_BFu31i_Uc()
{
  {
    init_simple_test("aBFu7s_BFu31i_Uc");
    static STRUCT_IF_C aBFu7s_BFu31i_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_Uc");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_Uc");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_Uc");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_Uc, aBFu7s_BFu31i_Uc)
//============================================================================



static void Test_aBFu7s_BFu31i_Ui()
{
  {
    init_simple_test("aBFu7s_BFu31i_Ui");
    static STRUCT_IF_C aBFu7s_BFu31i_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu31i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_Ui");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_Ui");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_Ui");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_Ui, aBFu7s_BFu31i_Ui)
//============================================================================



static void Test_aBFu7s_BFu31i_Ul()
{
  {
    init_simple_test("aBFu7s_BFu31i_Ul");
    static STRUCT_IF_C aBFu7s_BFu31i_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_BFu31i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_Ul");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_Ul");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_Ul");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_Ul, aBFu7s_BFu31i_Ul)
//============================================================================



static void Test_aBFu7s_BFu31i_Us()
{
  {
    init_simple_test("aBFu7s_BFu31i_Us");
    static STRUCT_IF_C aBFu7s_BFu31i_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu31i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_Us");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_Us");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_Us");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_Us, aBFu7s_BFu31i_Us)
//============================================================================



static void Test_aBFu7s_BFu31i_Vp()
{
  {
    init_simple_test("aBFu7s_BFu31i_Vp");
    static STRUCT_IF_C aBFu7s_BFu31i_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_BFu31i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31i_Vp");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31i_Vp");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31i_Vp");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31i_Vp, aBFu7s_BFu31i_Vp)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu31ll_BFu31i()
{
  {
    init_simple_test("aBFu7s_BFu31ll_BFu31i");
    static STRUCT_IF_C aBFu7s_BFu31ll_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu31ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_BFu31i");
    set_bf_and_test(lv, v3, 4, 6, 31, 1, "aBFu7s_BFu31ll_BFu31i");
    set_bf_and_test(lv, v3, 4, 6, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_BFu31i, aBFu7s_BFu31ll_BFu31i)
//============================================================================



static void Test_aBFu7s_BFu31ll_BFu31ll()
{
  {
    init_simple_test("aBFu7s_BFu31ll_BFu31ll");
    static STRUCT_IF_C aBFu7s_BFu31ll_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu31ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v3, 4, 6, 31, 1, "aBFu7s_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v3, 4, 6, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_BFu31ll, aBFu7s_BFu31ll_BFu31ll)
//============================================================================



static void Test_aBFu7s_BFu31ll_BFu32i()
{
  {
    init_simple_test("aBFu7s_BFu31ll_BFu32i");
    static STRUCT_IF_C aBFu7s_BFu31ll_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu31ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_BFu32i");
    set_bf_and_test(lv, v3, 4, 6, 32, 1, "aBFu7s_BFu31ll_BFu32i");
    set_bf_and_test(lv, v3, 4, 6, 32, hide_ull(1LL<<31), "aBFu7s_BFu31ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_BFu32i, aBFu7s_BFu31ll_BFu32i)
//============================================================================



static void Test_aBFu7s_BFu31ll_BFu32ll()
{
  {
    init_simple_test("aBFu7s_BFu31ll_BFu32ll");
    static STRUCT_IF_C aBFu7s_BFu31ll_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu31ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v3, 4, 6, 32, 1, "aBFu7s_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v3, 4, 6, 32, hide_ull(1LL<<31), "aBFu7s_BFu31ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_BFu32ll, aBFu7s_BFu31ll_BFu32ll)
//============================================================================



static void Test_aBFu7s_BFu31ll_BFu33()
{
  {
    init_simple_test("aBFu7s_BFu31ll_BFu33");
    static STRUCT_IF_C aBFu7s_BFu31ll_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu31ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_BFu33");
    set_bf_and_test(lv, v3, 4, 6, 33, 1, "aBFu7s_BFu31ll_BFu33");
    set_bf_and_test(lv, v3, 4, 6, 33, hide_ull(1LL<<32), "aBFu7s_BFu31ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_BFu33, aBFu7s_BFu31ll_BFu33)
//============================================================================



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



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



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



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



static void Test_aBFu7s_BFu31ll_BFu8c()
{
  {
    init_simple_test("aBFu7s_BFu31ll_BFu8c");
    static STRUCT_IF_C aBFu7s_BFu31ll_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_BFu8c");
    set_bf_and_test(lv, v3, 4, 6, 8, 1, "aBFu7s_BFu31ll_BFu8c");
    set_bf_and_test(lv, v3, 4, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu31ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_BFu8c, aBFu7s_BFu31ll_BFu8c)
//============================================================================



static void Test_aBFu7s_BFu31ll_BFu8i()
{
  {
    init_simple_test("aBFu7s_BFu31ll_BFu8i");
    static STRUCT_IF_C aBFu7s_BFu31ll_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_BFu8i");
    set_bf_and_test(lv, v3, 4, 6, 8, 1, "aBFu7s_BFu31ll_BFu8i");
    set_bf_and_test(lv, v3, 4, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu31ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_BFu8i, aBFu7s_BFu31ll_BFu8i)
//============================================================================



static void Test_aBFu7s_BFu31ll_BFu8ll()
{
  {
    init_simple_test("aBFu7s_BFu31ll_BFu8ll");
    static STRUCT_IF_C aBFu7s_BFu31ll_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v3, 4, 6, 8, 1, "aBFu7s_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v3, 4, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu31ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_BFu8ll, aBFu7s_BFu31ll_BFu8ll)
//============================================================================



static void Test_aBFu7s_BFu31ll_BFu8s()
{
  {
    init_simple_test("aBFu7s_BFu31ll_BFu8s");
    static STRUCT_IF_C aBFu7s_BFu31ll_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_BFu8s");
    set_bf_and_test(lv, v3, 4, 6, 8, 1, "aBFu7s_BFu31ll_BFu8s");
    set_bf_and_test(lv, v3, 4, 6, 8, hide_ull(1LL<<7), "aBFu7s_BFu31ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_BFu8s, aBFu7s_BFu31ll_BFu8s)
//============================================================================



static void Test_aBFu7s_BFu31ll_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu31ll_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu31ll_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_BFu9i");
    set_bf_and_test(lv, v3, 4, 6, 9, 1, "aBFu7s_BFu31ll_BFu9i");
    set_bf_and_test(lv, v3, 4, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu31ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_BFu9i, aBFu7s_BFu31ll_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu31ll_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu31ll_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu31ll_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v3, 4, 6, 9, 1, "aBFu7s_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v3, 4, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu31ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_BFu9ll, aBFu7s_BFu31ll_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu31ll_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu31ll_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu31ll_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_BFu9s");
    set_bf_and_test(lv, v3, 4, 6, 9, 1, "aBFu7s_BFu31ll_BFu9s");
    set_bf_and_test(lv, v3, 4, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu31ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_BFu9s, aBFu7s_BFu31ll_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu31ll_C()
{
  {
    init_simple_test("aBFu7s_BFu31ll_C");
    static STRUCT_IF_C aBFu7s_BFu31ll_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_C");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_C");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_C");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_C, aBFu7s_BFu31ll_C)
//============================================================================



static void Test_aBFu7s_BFu31ll_D()
{
  {
    init_simple_test("aBFu7s_BFu31ll_D");
    static STRUCT_IF_C aBFu7s_BFu31ll_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_BFu31ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_D");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_D");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_D");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_D, aBFu7s_BFu31ll_D)
//============================================================================



static void Test_aBFu7s_BFu31ll_F()
{
  {
    init_simple_test("aBFu7s_BFu31ll_F");
    static STRUCT_IF_C aBFu7s_BFu31ll_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu31ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_F");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_F");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_F");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_F, aBFu7s_BFu31ll_F)
//============================================================================



static void Test_aBFu7s_BFu31ll_I()
{
  {
    init_simple_test("aBFu7s_BFu31ll_I");
    static STRUCT_IF_C aBFu7s_BFu31ll_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu31ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_I");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_I");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_I");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_I, aBFu7s_BFu31ll_I)
//============================================================================



static void Test_aBFu7s_BFu31ll_Ip()
{
  {
    init_simple_test("aBFu7s_BFu31ll_Ip");
    static STRUCT_IF_C aBFu7s_BFu31ll_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_BFu31ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_Ip");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_Ip");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_Ip");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_Ip, aBFu7s_BFu31ll_Ip)
//============================================================================



static void Test_aBFu7s_BFu31ll_L()
{
  {
    init_simple_test("aBFu7s_BFu31ll_L");
    static STRUCT_IF_C aBFu7s_BFu31ll_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_BFu31ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_L");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_L");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_L");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_L, aBFu7s_BFu31ll_L)
//============================================================================



static void Test_aBFu7s_BFu31ll_S()
{
  {
    init_simple_test("aBFu7s_BFu31ll_S");
    static STRUCT_IF_C aBFu7s_BFu31ll_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu31ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_S");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_S");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_S");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_S, aBFu7s_BFu31ll_S)
//============================================================================



static void Test_aBFu7s_BFu31ll_Uc()
{
  {
    init_simple_test("aBFu7s_BFu31ll_Uc");
    static STRUCT_IF_C aBFu7s_BFu31ll_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu31ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_Uc");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_Uc");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_Uc");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_Uc, aBFu7s_BFu31ll_Uc)
//============================================================================



static void Test_aBFu7s_BFu31ll_Ui()
{
  {
    init_simple_test("aBFu7s_BFu31ll_Ui");
    static STRUCT_IF_C aBFu7s_BFu31ll_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu31ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_Ui");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_Ui");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_Ui");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_Ui, aBFu7s_BFu31ll_Ui)
//============================================================================



static void Test_aBFu7s_BFu31ll_Ul()
{
  {
    init_simple_test("aBFu7s_BFu31ll_Ul");
    static STRUCT_IF_C aBFu7s_BFu31ll_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_BFu31ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_Ul");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_Ul");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_Ul");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_Ul, aBFu7s_BFu31ll_Ul)
//============================================================================



static void Test_aBFu7s_BFu31ll_Us()
{
  {
    init_simple_test("aBFu7s_BFu31ll_Us");
    static STRUCT_IF_C aBFu7s_BFu31ll_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu31ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_Us");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_Us");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_Us");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_Us, aBFu7s_BFu31ll_Us)
//============================================================================



static void Test_aBFu7s_BFu31ll_Vp()
{
  {
    init_simple_test("aBFu7s_BFu31ll_Vp");
    static STRUCT_IF_C aBFu7s_BFu31ll_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_BFu31ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu31ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu31ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu31ll_Vp");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu7s_BFu31ll_Vp");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu31ll_Vp");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu31ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu31ll_Vp, aBFu7s_BFu31ll_Vp)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu32i_BFu31i()
{
  {
    init_simple_test("aBFu7s_BFu32i_BFu31i");
    static STRUCT_IF_C aBFu7s_BFu32i_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu32i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32i_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32i_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32i_BFu31i");
    set_bf_and_test(lv, v3, 4, 7, 31, 1, "aBFu7s_BFu32i_BFu31i");
    set_bf_and_test(lv, v3, 4, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu32i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32i_BFu31i, aBFu7s_BFu32i_BFu31i)
//============================================================================



static void Test_aBFu7s_BFu32i_BFu31ll()
{
  {
    init_simple_test("aBFu7s_BFu32i_BFu31ll");
    static STRUCT_IF_C aBFu7s_BFu32i_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu32i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32i_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32i_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32i_BFu31ll");
    set_bf_and_test(lv, v3, 4, 7, 31, 1, "aBFu7s_BFu32i_BFu31ll");
    set_bf_and_test(lv, v3, 4, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu32i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32i_BFu31ll, aBFu7s_BFu32i_BFu31ll)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu32i_C()
{
  {
    init_simple_test("aBFu7s_BFu32i_C");
    static STRUCT_IF_C aBFu7s_BFu32i_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu32i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32i_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32i_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32i_C");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32i_C");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32i_C");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32i_C, aBFu7s_BFu32i_C)
//============================================================================



static void Test_aBFu7s_BFu32i_D()
{
  {
    init_simple_test("aBFu7s_BFu32i_D");
    static STRUCT_IF_C aBFu7s_BFu32i_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_BFu32i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32i_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32i_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32i_D");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32i_D");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32i_D");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32i_D, aBFu7s_BFu32i_D)
//============================================================================



static void Test_aBFu7s_BFu32i_F()
{
  {
    init_simple_test("aBFu7s_BFu32i_F");
    static STRUCT_IF_C aBFu7s_BFu32i_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu32i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32i_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32i_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32i_F");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32i_F");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32i_F");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32i_F, aBFu7s_BFu32i_F)
//============================================================================



static void Test_aBFu7s_BFu32i_I()
{
  {
    init_simple_test("aBFu7s_BFu32i_I");
    static STRUCT_IF_C aBFu7s_BFu32i_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu32i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32i_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32i_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32i_I");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32i_I");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32i_I");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32i_I, aBFu7s_BFu32i_I)
//============================================================================



static void Test_aBFu7s_BFu32i_Ip()
{
  {
    init_simple_test("aBFu7s_BFu32i_Ip");
    static STRUCT_IF_C aBFu7s_BFu32i_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_BFu32i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32i_Ip");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32i_Ip");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32i_Ip");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32i_Ip, aBFu7s_BFu32i_Ip)
//============================================================================



static void Test_aBFu7s_BFu32i_L()
{
  {
    init_simple_test("aBFu7s_BFu32i_L");
    static STRUCT_IF_C aBFu7s_BFu32i_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_BFu32i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32i_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32i_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32i_L");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32i_L");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32i_L");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32i_L, aBFu7s_BFu32i_L)
//============================================================================



static void Test_aBFu7s_BFu32i_S()
{
  {
    init_simple_test("aBFu7s_BFu32i_S");
    static STRUCT_IF_C aBFu7s_BFu32i_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu32i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32i_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32i_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32i_S");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32i_S");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32i_S");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32i_S, aBFu7s_BFu32i_S)
//============================================================================



static void Test_aBFu7s_BFu32i_Uc()
{
  {
    init_simple_test("aBFu7s_BFu32i_Uc");
    static STRUCT_IF_C aBFu7s_BFu32i_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu32i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32i_Uc");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32i_Uc");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32i_Uc");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32i_Uc, aBFu7s_BFu32i_Uc)
//============================================================================



static void Test_aBFu7s_BFu32i_Ui()
{
  {
    init_simple_test("aBFu7s_BFu32i_Ui");
    static STRUCT_IF_C aBFu7s_BFu32i_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu32i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32i_Ui");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32i_Ui");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32i_Ui");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32i_Ui, aBFu7s_BFu32i_Ui)
//============================================================================



static void Test_aBFu7s_BFu32i_Ul()
{
  {
    init_simple_test("aBFu7s_BFu32i_Ul");
    static STRUCT_IF_C aBFu7s_BFu32i_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_BFu32i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32i_Ul");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32i_Ul");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32i_Ul");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32i_Ul, aBFu7s_BFu32i_Ul)
//============================================================================



static void Test_aBFu7s_BFu32i_Us()
{
  {
    init_simple_test("aBFu7s_BFu32i_Us");
    static STRUCT_IF_C aBFu7s_BFu32i_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu32i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32i_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32i_Us");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32i_Us");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32i_Us");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32i_Us, aBFu7s_BFu32i_Us)
//============================================================================



static void Test_aBFu7s_BFu32i_Vp()
{
  {
    init_simple_test("aBFu7s_BFu32i_Vp");
    static STRUCT_IF_C aBFu7s_BFu32i_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_BFu32i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32i_Vp");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32i_Vp");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32i_Vp");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32i_Vp, aBFu7s_BFu32i_Vp)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu32ll_BFu31i()
{
  {
    init_simple_test("aBFu7s_BFu32ll_BFu31i");
    static STRUCT_IF_C aBFu7s_BFu32ll_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu32ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32ll_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32ll_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32ll_BFu31i");
    set_bf_and_test(lv, v3, 4, 7, 31, 1, "aBFu7s_BFu32ll_BFu31i");
    set_bf_and_test(lv, v3, 4, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu32ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32ll_BFu31i, aBFu7s_BFu32ll_BFu31i)
//============================================================================



static void Test_aBFu7s_BFu32ll_BFu31ll()
{
  {
    init_simple_test("aBFu7s_BFu32ll_BFu31ll");
    static STRUCT_IF_C aBFu7s_BFu32ll_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu32ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v3, 4, 7, 31, 1, "aBFu7s_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v3, 4, 7, 31, hide_ull(1LL<<30), "aBFu7s_BFu32ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32ll_BFu31ll, aBFu7s_BFu32ll_BFu31ll)
//============================================================================



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



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



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



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



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu32ll_C()
{
  {
    init_simple_test("aBFu7s_BFu32ll_C");
    static STRUCT_IF_C aBFu7s_BFu32ll_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu32ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32ll_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32ll_C");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32ll_C");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32ll_C");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32ll_C, aBFu7s_BFu32ll_C)
//============================================================================



static void Test_aBFu7s_BFu32ll_D()
{
  {
    init_simple_test("aBFu7s_BFu32ll_D");
    static STRUCT_IF_C aBFu7s_BFu32ll_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_BFu32ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32ll_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32ll_D");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32ll_D");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32ll_D");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32ll_D, aBFu7s_BFu32ll_D)
//============================================================================



static void Test_aBFu7s_BFu32ll_F()
{
  {
    init_simple_test("aBFu7s_BFu32ll_F");
    static STRUCT_IF_C aBFu7s_BFu32ll_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu32ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32ll_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32ll_F");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32ll_F");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32ll_F");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32ll_F, aBFu7s_BFu32ll_F)
//============================================================================



static void Test_aBFu7s_BFu32ll_I()
{
  {
    init_simple_test("aBFu7s_BFu32ll_I");
    static STRUCT_IF_C aBFu7s_BFu32ll_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu32ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32ll_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32ll_I");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32ll_I");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32ll_I");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32ll_I, aBFu7s_BFu32ll_I)
//============================================================================



static void Test_aBFu7s_BFu32ll_Ip()
{
  {
    init_simple_test("aBFu7s_BFu32ll_Ip");
    static STRUCT_IF_C aBFu7s_BFu32ll_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_BFu32ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32ll_Ip");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32ll_Ip");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32ll_Ip");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32ll_Ip, aBFu7s_BFu32ll_Ip)
//============================================================================



static void Test_aBFu7s_BFu32ll_L()
{
  {
    init_simple_test("aBFu7s_BFu32ll_L");
    static STRUCT_IF_C aBFu7s_BFu32ll_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_BFu32ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32ll_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32ll_L");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32ll_L");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32ll_L");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32ll_L, aBFu7s_BFu32ll_L)
//============================================================================



static void Test_aBFu7s_BFu32ll_S()
{
  {
    init_simple_test("aBFu7s_BFu32ll_S");
    static STRUCT_IF_C aBFu7s_BFu32ll_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu32ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32ll_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32ll_S");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32ll_S");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32ll_S");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32ll_S, aBFu7s_BFu32ll_S)
//============================================================================



static void Test_aBFu7s_BFu32ll_Uc()
{
  {
    init_simple_test("aBFu7s_BFu32ll_Uc");
    static STRUCT_IF_C aBFu7s_BFu32ll_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu32ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32ll_Uc");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32ll_Uc");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32ll_Uc");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32ll_Uc, aBFu7s_BFu32ll_Uc)
//============================================================================



static void Test_aBFu7s_BFu32ll_Ui()
{
  {
    init_simple_test("aBFu7s_BFu32ll_Ui");
    static STRUCT_IF_C aBFu7s_BFu32ll_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu32ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32ll_Ui");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32ll_Ui");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32ll_Ui");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32ll_Ui, aBFu7s_BFu32ll_Ui)
//============================================================================



static void Test_aBFu7s_BFu32ll_Ul()
{
  {
    init_simple_test("aBFu7s_BFu32ll_Ul");
    static STRUCT_IF_C aBFu7s_BFu32ll_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_BFu32ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32ll_Ul");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32ll_Ul");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32ll_Ul");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32ll_Ul, aBFu7s_BFu32ll_Ul)
//============================================================================



static void Test_aBFu7s_BFu32ll_Us()
{
  {
    init_simple_test("aBFu7s_BFu32ll_Us");
    static STRUCT_IF_C aBFu7s_BFu32ll_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu32ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32ll_Us");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32ll_Us");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32ll_Us");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32ll_Us, aBFu7s_BFu32ll_Us)
//============================================================================



static void Test_aBFu7s_BFu32ll_Vp()
{
  {
    init_simple_test("aBFu7s_BFu32ll_Vp");
    static STRUCT_IF_C aBFu7s_BFu32ll_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_BFu32ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu32ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu32ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu32ll_Vp");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu7s_BFu32ll_Vp");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu32ll_Vp");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu32ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu32ll_Vp, aBFu7s_BFu32ll_Vp)
//============================================================================



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



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



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



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



static void Test_aBFu7s_BFu33_BFu16i()
{
  {
    init_simple_test("aBFu7s_BFu33_BFu16i");
    static STRUCT_IF_C aBFu7s_BFu33_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu33_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7s_BFu33_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7s_BFu33_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_BFu16i, aBFu7s_BFu33_BFu16i)
//============================================================================



static void Test_aBFu7s_BFu33_BFu16ll()
{
  {
    init_simple_test("aBFu7s_BFu33_BFu16ll");
    static STRUCT_IF_C aBFu7s_BFu33_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu33_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7s_BFu33_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7s_BFu33_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_BFu16ll, aBFu7s_BFu33_BFu16ll)
//============================================================================



static void Test_aBFu7s_BFu33_BFu16s()
{
  {
    init_simple_test("aBFu7s_BFu33_BFu16s");
    static STRUCT_IF_C aBFu7s_BFu33_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu33_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7s_BFu33_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7s_BFu33_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_BFu16s, aBFu7s_BFu33_BFu16s)
//============================================================================



static void Test_aBFu7s_BFu33_BFu17i()
{
  {
    init_simple_test("aBFu7s_BFu33_BFu17i");
    static STRUCT_IF_C aBFu7s_BFu33_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7s_BFu33_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu7s_BFu33_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu7s_BFu33_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_BFu17i, aBFu7s_BFu33_BFu17i)
//============================================================================



static void Test_aBFu7s_BFu33_BFu17ll()
{
  {
    init_simple_test("aBFu7s_BFu33_BFu17ll");
    static STRUCT_IF_C aBFu7s_BFu33_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7s_BFu33_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu7s_BFu33_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu7s_BFu33_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_BFu17ll, aBFu7s_BFu33_BFu17ll)
//============================================================================



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



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



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



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



static void Test_aBFu7s_BFu33_BFu31i()
{
  {
    init_simple_test("aBFu7s_BFu33_BFu31i");
    static STRUCT_IF_C aBFu7s_BFu33_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu33_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu7s_BFu33_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu7s_BFu33_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_BFu31i, aBFu7s_BFu33_BFu31i)
//============================================================================



static void Test_aBFu7s_BFu33_BFu31ll()
{
  {
    init_simple_test("aBFu7s_BFu33_BFu31ll");
    static STRUCT_IF_C aBFu7s_BFu33_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu33_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu7s_BFu33_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu7s_BFu33_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_BFu31ll, aBFu7s_BFu33_BFu31ll)
//============================================================================



static void Test_aBFu7s_BFu33_BFu32i()
{
  {
    init_simple_test("aBFu7s_BFu33_BFu32i");
    static STRUCT_IF_C aBFu7s_BFu33_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu33_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu7s_BFu33_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu7s_BFu33_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_BFu32i, aBFu7s_BFu33_BFu32i)
//============================================================================



static void Test_aBFu7s_BFu33_BFu32ll()
{
  {
    init_simple_test("aBFu7s_BFu33_BFu32ll");
    static STRUCT_IF_C aBFu7s_BFu33_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu33_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu7s_BFu33_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu7s_BFu33_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_BFu32ll, aBFu7s_BFu33_BFu32ll)
//============================================================================



static void Test_aBFu7s_BFu33_BFu33()
{
  {
    init_simple_test("aBFu7s_BFu33_BFu33");
    static STRUCT_IF_C aBFu7s_BFu33_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu33_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, 1, "aBFu7s_BFu33_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_BFu33, aBFu7s_BFu33_BFu33)
//============================================================================



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



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



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



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



static void Test_aBFu7s_BFu33_BFu8c()
{
  {
    init_simple_test("aBFu7s_BFu33_BFu8c");
    static STRUCT_IF_C aBFu7s_BFu33_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu33_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7s_BFu33_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu33_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_BFu8c, aBFu7s_BFu33_BFu8c)
//============================================================================



static void Test_aBFu7s_BFu33_BFu8i()
{
  {
    init_simple_test("aBFu7s_BFu33_BFu8i");
    static STRUCT_IF_C aBFu7s_BFu33_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu33_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7s_BFu33_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu33_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_BFu8i, aBFu7s_BFu33_BFu8i)
//============================================================================



static void Test_aBFu7s_BFu33_BFu8ll()
{
  {
    init_simple_test("aBFu7s_BFu33_BFu8ll");
    static STRUCT_IF_C aBFu7s_BFu33_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu33_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7s_BFu33_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu33_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_BFu8ll, aBFu7s_BFu33_BFu8ll)
//============================================================================



static void Test_aBFu7s_BFu33_BFu8s()
{
  {
    init_simple_test("aBFu7s_BFu33_BFu8s");
    static STRUCT_IF_C aBFu7s_BFu33_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu33_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7s_BFu33_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu33_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_BFu8s, aBFu7s_BFu33_BFu8s)
//============================================================================



static void Test_aBFu7s_BFu33_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu33_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu33_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu33_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7s_BFu33_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu33_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_BFu9i, aBFu7s_BFu33_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu33_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu33_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu33_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu33_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7s_BFu33_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu33_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_BFu9ll, aBFu7s_BFu33_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu33_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu33_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu33_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu33_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7s_BFu33_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu33_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_BFu9s, aBFu7s_BFu33_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu33_C()
{
  {
    init_simple_test("aBFu7s_BFu33_C");
    static STRUCT_IF_C aBFu7s_BFu33_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu33_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_C");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_C");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_C");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu33_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_C, aBFu7s_BFu33_C)
//============================================================================



static void Test_aBFu7s_BFu33_D()
{
  {
    init_simple_test("aBFu7s_BFu33_D");
    static STRUCT_IF_C aBFu7s_BFu33_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_BFu33_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_D");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_D");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_D");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu33_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_D, aBFu7s_BFu33_D)
//============================================================================



static void Test_aBFu7s_BFu33_F()
{
  {
    init_simple_test("aBFu7s_BFu33_F");
    static STRUCT_IF_C aBFu7s_BFu33_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu33_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_F");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_F");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_F");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu33_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_F, aBFu7s_BFu33_F)
//============================================================================



static void Test_aBFu7s_BFu33_I()
{
  {
    init_simple_test("aBFu7s_BFu33_I");
    static STRUCT_IF_C aBFu7s_BFu33_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu33_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_I");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_I");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_I");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu33_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_I, aBFu7s_BFu33_I)
//============================================================================



static void Test_aBFu7s_BFu33_Ip()
{
  {
    init_simple_test("aBFu7s_BFu33_Ip");
    static STRUCT_IF_C aBFu7s_BFu33_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_BFu33_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_Ip");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_Ip");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_Ip");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu33_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_Ip, aBFu7s_BFu33_Ip)
//============================================================================



static void Test_aBFu7s_BFu33_L()
{
  {
    init_simple_test("aBFu7s_BFu33_L");
    static STRUCT_IF_C aBFu7s_BFu33_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_BFu33_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_L");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_L");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_L");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu33_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_L, aBFu7s_BFu33_L)
//============================================================================



static void Test_aBFu7s_BFu33_S()
{
  {
    init_simple_test("aBFu7s_BFu33_S");
    static STRUCT_IF_C aBFu7s_BFu33_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu33_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_S");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_S");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_S");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu33_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_S, aBFu7s_BFu33_S)
//============================================================================



static void Test_aBFu7s_BFu33_Uc()
{
  {
    init_simple_test("aBFu7s_BFu33_Uc");
    static STRUCT_IF_C aBFu7s_BFu33_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu33_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_Uc");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_Uc");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_Uc");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu33_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_Uc, aBFu7s_BFu33_Uc)
//============================================================================



static void Test_aBFu7s_BFu33_Ui()
{
  {
    init_simple_test("aBFu7s_BFu33_Ui");
    static STRUCT_IF_C aBFu7s_BFu33_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_BFu33_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_Ui");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_Ui");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_Ui");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu33_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_Ui, aBFu7s_BFu33_Ui)
//============================================================================



static void Test_aBFu7s_BFu33_Ul()
{
  {
    init_simple_test("aBFu7s_BFu33_Ul");
    static STRUCT_IF_C aBFu7s_BFu33_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_BFu33_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_Ul");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_Ul");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_Ul");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu33_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_Ul, aBFu7s_BFu33_Ul)
//============================================================================



static void Test_aBFu7s_BFu33_Us()
{
  {
    init_simple_test("aBFu7s_BFu33_Us");
    static STRUCT_IF_C aBFu7s_BFu33_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu33_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_Us");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_Us");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_Us");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu33_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_Us, aBFu7s_BFu33_Us)
//============================================================================



static void Test_aBFu7s_BFu33_Vp()
{
  {
    init_simple_test("aBFu7s_BFu33_Vp");
    static STRUCT_IF_C aBFu7s_BFu33_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_BFu33_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu33_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu33_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu33_Vp");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu7s_BFu33_Vp");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu33_Vp");
    check_field_offset(lv, v3, 5, "aBFu7s_BFu33_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu33_Vp, aBFu7s_BFu33_Vp)
//============================================================================



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



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



static void Test_aBFu7s_BFu7c_BFs7c_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7c_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7c_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7c_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7c_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7c_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7c_BFs7c, aBFu7s_BFu7c_BFs7c_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7c_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7c_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7c_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7c_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7c_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7c_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7c_BFs7i, aBFu7s_BFu7c_BFs7c_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7c_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7c_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7c_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7c_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7c_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7c_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7c_BFs7ll, aBFu7s_BFu7c_BFs7c_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7c_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7c_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7c_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7c_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7c_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7c_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7c_BFs7s, aBFu7s_BFu7c_BFs7c_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7c_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7c_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7c_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7c_BFu7c, aBFu7s_BFu7c_BFs7c_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7c_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7c_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7c_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7c_BFu7i, aBFu7s_BFu7c_BFs7c_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7c_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7c_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7c_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7c_BFu7ll, aBFu7s_BFu7c_BFs7c_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7c_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7c_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7c_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7c_BFu7s, aBFu7s_BFu7c_BFs7c_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7c_BFs7i_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7i_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7i_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7i_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7i_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7i_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7i_BFs7c, aBFu7s_BFu7c_BFs7i_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7i_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7i_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7i_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7i_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7i_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7i_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7i_BFs7i, aBFu7s_BFu7c_BFs7i_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7i_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7i_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7i_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7i_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7i_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7i_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7i_BFs7ll, aBFu7s_BFu7c_BFs7i_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7i_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7i_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7i_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7i_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7i_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7i_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7i_BFs7s, aBFu7s_BFu7c_BFs7i_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7i_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7i_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7i_BFu7c, aBFu7s_BFu7c_BFs7i_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7i_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7i_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7i_BFu7i, aBFu7s_BFu7c_BFs7i_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7i_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7i_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7i_BFu7ll, aBFu7s_BFu7c_BFs7i_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7i_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7i_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7i_BFu7s, aBFu7s_BFu7c_BFs7i_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7c_BFs7ll_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7ll_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7ll_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7ll_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7ll_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7ll_BFs7c, aBFu7s_BFu7c_BFs7ll_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7ll_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7ll_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7ll_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7ll_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7ll_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7ll_BFs7i, aBFu7s_BFu7c_BFs7ll_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7ll_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7ll_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7ll_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7ll_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7ll_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7ll_BFs7ll, aBFu7s_BFu7c_BFs7ll_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7ll_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7ll_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7ll_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7ll_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7ll_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7ll_BFs7s, aBFu7s_BFu7c_BFs7ll_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7ll_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7ll_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7ll_BFu7c, aBFu7s_BFu7c_BFs7ll_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7ll_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7ll_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7ll_BFu7i, aBFu7s_BFu7c_BFs7ll_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7ll_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7ll_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7ll_BFu7ll, aBFu7s_BFu7c_BFs7ll_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7ll_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7ll_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7ll_BFu7s, aBFu7s_BFu7c_BFs7ll_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7c_BFs7s_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7s_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7s_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7s_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7s_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7s_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7s_BFs7c, aBFu7s_BFu7c_BFs7s_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7s_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7s_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7s_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7s_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7s_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7s_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7s_BFs7i, aBFu7s_BFu7c_BFs7s_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7s_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7s_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7s_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7s_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7s_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7s_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7s_BFs7ll, aBFu7s_BFu7c_BFs7s_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7s_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7s_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7s_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7s_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7s_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7s_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7s_BFs7s, aBFu7s_BFu7c_BFs7s_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7s_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7s_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7s_BFu7c, aBFu7s_BFu7c_BFs7s_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7s_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7s_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7s_BFu7i, aBFu7s_BFu7c_BFs7s_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7s_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7s_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7s_BFu7ll, aBFu7s_BFu7c_BFs7s_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7c_BFs7s_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFs7s_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7c_BFs7s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFs7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFs7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFs7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFs7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFs7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFs7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFs7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFs7s_BFu7s, aBFu7s_BFu7c_BFs7s_BFu7s)
//============================================================================



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



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



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



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



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



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



static void Test_aBFu7s_BFu7c_BFu17i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu17i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu17i");
    set_bf_and_test(lv, v3, 1, 6, 17, 1, "aBFu7s_BFu7c_BFu17i");
    set_bf_and_test(lv, v3, 1, 6, 17, hide_ull(1LL<<16), "aBFu7s_BFu7c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu17i, aBFu7s_BFu7c_BFu17i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu17ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu17ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu17ll");
    set_bf_and_test(lv, v3, 1, 6, 17, 1, "aBFu7s_BFu7c_BFu17ll");
    set_bf_and_test(lv, v3, 1, 6, 17, hide_ull(1LL<<16), "aBFu7s_BFu7c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu17ll, aBFu7s_BFu7c_BFu17ll)
//============================================================================



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu7c_BFu7c_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7c_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7c_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7c_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7c_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7c_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7c_BFs7c, aBFu7s_BFu7c_BFu7c_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7c_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7c_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7c_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7c_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7c_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7c_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7c_BFs7i, aBFu7s_BFu7c_BFu7c_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7c_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7c_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7c_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7c_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7c_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7c_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7c_BFs7ll, aBFu7s_BFu7c_BFu7c_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7c_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7c_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7c_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7c_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7c_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7c_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7c_BFs7s, aBFu7s_BFu7c_BFu7c_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7c_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7c_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7c_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7c_BFu7c, aBFu7s_BFu7c_BFu7c_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7c_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7c_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7c_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7c_BFu7i, aBFu7s_BFu7c_BFu7c_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7c_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7c_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7c_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7c_BFu7ll, aBFu7s_BFu7c_BFu7c_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7c_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7c_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7c_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7c_BFu7s, aBFu7s_BFu7c_BFu7c_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7c_BFu7i_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7i_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7i_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7i_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7i_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7i_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7i_BFs7c, aBFu7s_BFu7c_BFu7i_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7i_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7i_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7i_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7i_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7i_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7i_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7i_BFs7i, aBFu7s_BFu7c_BFu7i_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7i_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7i_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7i_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7i_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7i_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7i_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7i_BFs7ll, aBFu7s_BFu7c_BFu7i_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7i_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7i_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7i_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7i_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7i_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7i_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7i_BFs7s, aBFu7s_BFu7c_BFu7i_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7i_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7i_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7i_BFu7c, aBFu7s_BFu7c_BFu7i_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7i_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7i_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7i_BFu7i, aBFu7s_BFu7c_BFu7i_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7i_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7i_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7i_BFu7ll, aBFu7s_BFu7c_BFu7i_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7i_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7i_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7i_BFu7s, aBFu7s_BFu7c_BFu7i_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7c_BFu7ll_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7ll_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7ll_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7ll_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7ll_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7ll_BFs7c, aBFu7s_BFu7c_BFu7ll_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7ll_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7ll_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7ll_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7ll_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7ll_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7ll_BFs7i, aBFu7s_BFu7c_BFu7ll_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7ll_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7ll_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7ll_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7ll_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7ll_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7ll_BFs7ll, aBFu7s_BFu7c_BFu7ll_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7ll_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7ll_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7ll_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7ll_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7ll_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7ll_BFs7s, aBFu7s_BFu7c_BFu7ll_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7ll_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7ll_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7ll_BFu7c, aBFu7s_BFu7c_BFu7ll_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7ll_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7ll_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7ll_BFu7i, aBFu7s_BFu7c_BFu7ll_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7ll_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7ll_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7ll_BFu7ll, aBFu7s_BFu7c_BFu7ll_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7ll_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7ll_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7ll_BFu7s, aBFu7s_BFu7c_BFu7ll_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7c_BFu7s_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7s_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7s_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7s_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7s_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7s_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7s_BFs7c, aBFu7s_BFu7c_BFu7s_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7s_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7s_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7s_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7s_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7s_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7s_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7s_BFs7i, aBFu7s_BFu7c_BFu7s_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7s_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7s_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7s_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7s_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7s_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7s_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7s_BFs7ll, aBFu7s_BFu7c_BFu7s_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7s_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7s_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7s_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7s_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7s_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7s_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7s_BFs7s, aBFu7s_BFu7c_BFu7s_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7s_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7s_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7s_BFu7c, aBFu7s_BFu7c_BFu7s_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7s_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7s_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7s_BFu7i, aBFu7s_BFu7c_BFu7s_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7s_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7s_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7s_BFu7ll, aBFu7s_BFu7c_BFu7s_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu7s_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu7s_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu7s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_BFu7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7c_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7c_BFu7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu7s_BFu7s, aBFu7s_BFu7c_BFu7s_BFu7s)
//============================================================================



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



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



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



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



static void Test_aBFu7s_BFu7c_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu9i");
    set_bf_and_test(lv, v3, 1, 6, 9, 1, "aBFu7s_BFu7c_BFu9i");
    set_bf_and_test(lv, v3, 1, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu7c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu9i, aBFu7s_BFu7c_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu9ll");
    set_bf_and_test(lv, v3, 1, 6, 9, 1, "aBFu7s_BFu7c_BFu9ll");
    set_bf_and_test(lv, v3, 1, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu7c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu9ll, aBFu7s_BFu7c_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu7c_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu7c_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu7c_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_BFu9s");
    set_bf_and_test(lv, v3, 1, 6, 9, 1, "aBFu7s_BFu7c_BFu9s");
    set_bf_and_test(lv, v3, 1, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu7c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_BFu9s, aBFu7s_BFu7c_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu7c_C()
{
  {
    init_simple_test("aBFu7s_BFu7c_C");
    static STRUCT_IF_C aBFu7s_BFu7c_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7c_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_C");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_C");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_C");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7c_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_C, aBFu7s_BFu7c_C)
//============================================================================



static void Test_aBFu7s_BFu7c_D()
{
  {
    init_simple_test("aBFu7s_BFu7c_D");
    static STRUCT_IF_C aBFu7s_BFu7c_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu7c_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_D");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_D");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_D");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7c_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_D, aBFu7s_BFu7c_D)
//============================================================================



static void Test_aBFu7s_BFu7c_F()
{
  {
    init_simple_test("aBFu7s_BFu7c_F");
    static STRUCT_IF_C aBFu7s_BFu7c_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu7c_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_F");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_F");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_F");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7c_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_F, aBFu7s_BFu7c_F)
//============================================================================



static void Test_aBFu7s_BFu7c_I()
{
  {
    init_simple_test("aBFu7s_BFu7c_I");
    static STRUCT_IF_C aBFu7s_BFu7c_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu7c_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_I");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_I");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_I");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7c_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_I, aBFu7s_BFu7c_I)
//============================================================================



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



static void Test_aBFu7s_BFu7c_L()
{
  {
    init_simple_test("aBFu7s_BFu7c_L");
    static STRUCT_IF_C aBFu7s_BFu7c_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu7c_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_L");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_L");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_L");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7c_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_L, aBFu7s_BFu7c_L)
//============================================================================



static void Test_aBFu7s_BFu7c_S()
{
  {
    init_simple_test("aBFu7s_BFu7c_S");
    static STRUCT_IF_C aBFu7s_BFu7c_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_S");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_S");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_S");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7c_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_S, aBFu7s_BFu7c_S)
//============================================================================



static void Test_aBFu7s_BFu7c_Uc()
{
  {
    init_simple_test("aBFu7s_BFu7c_Uc");
    static STRUCT_IF_C aBFu7s_BFu7c_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7c_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_Uc");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_Uc");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_Uc");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7c_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_Uc, aBFu7s_BFu7c_Uc)
//============================================================================



static void Test_aBFu7s_BFu7c_Ui()
{
  {
    init_simple_test("aBFu7s_BFu7c_Ui");
    static STRUCT_IF_C aBFu7s_BFu7c_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu7c_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_Ui");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_Ui");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_Ui");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7c_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_Ui, aBFu7s_BFu7c_Ui)
//============================================================================



static void Test_aBFu7s_BFu7c_Ul()
{
  {
    init_simple_test("aBFu7s_BFu7c_Ul");
    static STRUCT_IF_C aBFu7s_BFu7c_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu7c_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_Ul");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_Ul");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_Ul");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7c_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_Ul, aBFu7s_BFu7c_Ul)
//============================================================================



static void Test_aBFu7s_BFu7c_Us()
{
  {
    init_simple_test("aBFu7s_BFu7c_Us");
    static STRUCT_IF_C aBFu7s_BFu7c_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7c_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7c_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7c_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_Us");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7c_Us");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7c_Us");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7c_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7c_Us, aBFu7s_BFu7c_Us)
//============================================================================



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



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



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



static void Test_aBFu7s_BFu7i_BFs7c_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7c_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7c_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7c_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7c_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7c_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7c_BFs7c, aBFu7s_BFu7i_BFs7c_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7c_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7c_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7c_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7c_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7c_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7c_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7c_BFs7i, aBFu7s_BFu7i_BFs7c_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7c_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7c_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7c_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7c_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7c_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7c_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7c_BFs7ll, aBFu7s_BFu7i_BFs7c_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7c_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7c_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7c_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7c_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7c_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7c_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7c_BFs7s, aBFu7s_BFu7i_BFs7c_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7c_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7c_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7c_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7c_BFu7c, aBFu7s_BFu7i_BFs7c_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7c_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7c_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7c_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7c_BFu7i, aBFu7s_BFu7i_BFs7c_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7c_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7c_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7c_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7c_BFu7ll, aBFu7s_BFu7i_BFs7c_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7c_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7c_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7c_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7c_BFu7s, aBFu7s_BFu7i_BFs7c_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7i_BFs7i_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7i_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7i_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7i_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7i_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7i_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7i_BFs7c, aBFu7s_BFu7i_BFs7i_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7i_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7i_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7i_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7i_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7i_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7i_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7i_BFs7i, aBFu7s_BFu7i_BFs7i_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7i_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7i_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7i_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7i_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7i_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7i_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7i_BFs7ll, aBFu7s_BFu7i_BFs7i_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7i_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7i_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7i_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7i_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7i_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7i_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7i_BFs7s, aBFu7s_BFu7i_BFs7i_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7i_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7i_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7i_BFu7c, aBFu7s_BFu7i_BFs7i_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7i_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7i_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7i_BFu7i, aBFu7s_BFu7i_BFs7i_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7i_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7i_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7i_BFu7ll, aBFu7s_BFu7i_BFs7i_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7i_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7i_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7i_BFu7s, aBFu7s_BFu7i_BFs7i_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7i_BFs7ll_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7ll_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7ll_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7ll_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7ll_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7ll_BFs7c, aBFu7s_BFu7i_BFs7ll_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7ll_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7ll_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7ll_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7ll_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7ll_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7ll_BFs7i, aBFu7s_BFu7i_BFs7ll_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7ll_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7ll_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7ll_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7ll_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7ll_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7ll_BFs7ll, aBFu7s_BFu7i_BFs7ll_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7ll_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7ll_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7ll_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7ll_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7ll_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7ll_BFs7s, aBFu7s_BFu7i_BFs7ll_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7ll_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7ll_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7ll_BFu7c, aBFu7s_BFu7i_BFs7ll_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7ll_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7ll_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7ll_BFu7i, aBFu7s_BFu7i_BFs7ll_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7ll_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7ll_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7ll_BFu7ll, aBFu7s_BFu7i_BFs7ll_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7ll_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7ll_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7ll_BFu7s, aBFu7s_BFu7i_BFs7ll_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7i_BFs7s_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7s_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7s_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7s_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7s_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7s_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7s_BFs7c, aBFu7s_BFu7i_BFs7s_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7s_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7s_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7s_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7s_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7s_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7s_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7s_BFs7i, aBFu7s_BFu7i_BFs7s_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7s_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7s_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7s_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7s_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7s_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7s_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7s_BFs7ll, aBFu7s_BFu7i_BFs7s_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7s_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7s_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7s_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7s_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7s_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7s_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7s_BFs7s, aBFu7s_BFu7i_BFs7s_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7s_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7s_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7s_BFu7c, aBFu7s_BFu7i_BFs7s_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7s_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7s_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7s_BFu7i, aBFu7s_BFu7i_BFs7s_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7s_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7s_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7s_BFu7ll, aBFu7s_BFu7i_BFs7s_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7i_BFs7s_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFs7s_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7i_BFs7s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFs7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFs7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFs7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFs7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFs7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFs7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFs7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFs7s_BFu7s, aBFu7s_BFu7i_BFs7s_BFu7s)
//============================================================================



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



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



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



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



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



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



static void Test_aBFu7s_BFu7i_BFu17i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu17i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu17i");
    set_bf_and_test(lv, v3, 1, 6, 17, 1, "aBFu7s_BFu7i_BFu17i");
    set_bf_and_test(lv, v3, 1, 6, 17, hide_ull(1LL<<16), "aBFu7s_BFu7i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu17i, aBFu7s_BFu7i_BFu17i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu17ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu17ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu17ll");
    set_bf_and_test(lv, v3, 1, 6, 17, 1, "aBFu7s_BFu7i_BFu17ll");
    set_bf_and_test(lv, v3, 1, 6, 17, hide_ull(1LL<<16), "aBFu7s_BFu7i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu17ll, aBFu7s_BFu7i_BFu17ll)
//============================================================================



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu7i_BFu7c_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7c_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7c_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7c_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7c_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7c_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7c_BFs7c, aBFu7s_BFu7i_BFu7c_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7c_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7c_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7c_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7c_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7c_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7c_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7c_BFs7i, aBFu7s_BFu7i_BFu7c_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7c_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7c_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7c_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7c_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7c_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7c_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7c_BFs7ll, aBFu7s_BFu7i_BFu7c_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7c_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7c_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7c_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7c_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7c_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7c_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7c_BFs7s, aBFu7s_BFu7i_BFu7c_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7c_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7c_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7c_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7c_BFu7c, aBFu7s_BFu7i_BFu7c_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7c_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7c_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7c_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7c_BFu7i, aBFu7s_BFu7i_BFu7c_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7c_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7c_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7c_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7c_BFu7ll, aBFu7s_BFu7i_BFu7c_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7c_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7c_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7c_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7c_BFu7s, aBFu7s_BFu7i_BFu7c_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7i_BFu7i_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7i_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7i_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7i_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7i_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7i_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7i_BFs7c, aBFu7s_BFu7i_BFu7i_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7i_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7i_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7i_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7i_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7i_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7i_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7i_BFs7i, aBFu7s_BFu7i_BFu7i_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7i_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7i_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7i_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7i_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7i_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7i_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7i_BFs7ll, aBFu7s_BFu7i_BFu7i_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7i_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7i_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7i_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7i_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7i_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7i_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7i_BFs7s, aBFu7s_BFu7i_BFu7i_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7i_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7i_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7i_BFu7c, aBFu7s_BFu7i_BFu7i_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7i_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7i_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7i_BFu7i, aBFu7s_BFu7i_BFu7i_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7i_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7i_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7i_BFu7ll, aBFu7s_BFu7i_BFu7i_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7i_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7i_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7i_BFu7s, aBFu7s_BFu7i_BFu7i_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7i_BFu7ll_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7ll_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7ll_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7ll_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7ll_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7ll_BFs7c, aBFu7s_BFu7i_BFu7ll_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7ll_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7ll_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7ll_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7ll_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7ll_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7ll_BFs7i, aBFu7s_BFu7i_BFu7ll_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7ll_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7ll_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7ll_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7ll_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7ll_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7ll_BFs7ll, aBFu7s_BFu7i_BFu7ll_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7ll_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7ll_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7ll_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7ll_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7ll_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7ll_BFs7s, aBFu7s_BFu7i_BFu7ll_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7ll_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7ll_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7ll_BFu7c, aBFu7s_BFu7i_BFu7ll_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7ll_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7ll_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7ll_BFu7i, aBFu7s_BFu7i_BFu7ll_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7ll_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7ll_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7ll_BFu7ll, aBFu7s_BFu7i_BFu7ll_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7ll_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7ll_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7ll_BFu7s, aBFu7s_BFu7i_BFu7ll_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7i_BFu7s_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7s_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7s_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7s_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7s_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7s_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7s_BFs7c, aBFu7s_BFu7i_BFu7s_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7s_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7s_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7s_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7s_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7s_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7s_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7s_BFs7i, aBFu7s_BFu7i_BFu7s_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7s_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7s_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7s_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7s_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7s_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7s_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7s_BFs7ll, aBFu7s_BFu7i_BFu7s_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7s_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7s_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7s_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7s_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7s_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7s_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7s_BFs7s, aBFu7s_BFu7i_BFu7s_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7s_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7s_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7s_BFu7c, aBFu7s_BFu7i_BFu7s_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7s_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7s_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7s_BFu7i, aBFu7s_BFu7i_BFu7s_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7s_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7s_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7s_BFu7ll, aBFu7s_BFu7i_BFu7s_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu7s_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu7s_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu7s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_BFu7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7i_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7i_BFu7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu7s_BFu7s, aBFu7s_BFu7i_BFu7s_BFu7s)
//============================================================================



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



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



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



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



static void Test_aBFu7s_BFu7i_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu9i");
    set_bf_and_test(lv, v3, 1, 6, 9, 1, "aBFu7s_BFu7i_BFu9i");
    set_bf_and_test(lv, v3, 1, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu7i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu9i, aBFu7s_BFu7i_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu9ll");
    set_bf_and_test(lv, v3, 1, 6, 9, 1, "aBFu7s_BFu7i_BFu9ll");
    set_bf_and_test(lv, v3, 1, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu7i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu9ll, aBFu7s_BFu7i_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu7i_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu7i_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu7i_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_BFu9s");
    set_bf_and_test(lv, v3, 1, 6, 9, 1, "aBFu7s_BFu7i_BFu9s");
    set_bf_and_test(lv, v3, 1, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu7i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_BFu9s, aBFu7s_BFu7i_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu7i_C()
{
  {
    init_simple_test("aBFu7s_BFu7i_C");
    static STRUCT_IF_C aBFu7s_BFu7i_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_C");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_C");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_C");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_C, aBFu7s_BFu7i_C)
//============================================================================



static void Test_aBFu7s_BFu7i_D()
{
  {
    init_simple_test("aBFu7s_BFu7i_D");
    static STRUCT_IF_C aBFu7s_BFu7i_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu7i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_D");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_D");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_D");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_D, aBFu7s_BFu7i_D)
//============================================================================



static void Test_aBFu7s_BFu7i_F()
{
  {
    init_simple_test("aBFu7s_BFu7i_F");
    static STRUCT_IF_C aBFu7s_BFu7i_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu7i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_F");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_F");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_F");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_F, aBFu7s_BFu7i_F)
//============================================================================



static void Test_aBFu7s_BFu7i_I()
{
  {
    init_simple_test("aBFu7s_BFu7i_I");
    static STRUCT_IF_C aBFu7s_BFu7i_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu7i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_I");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_I");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_I");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_I, aBFu7s_BFu7i_I)
//============================================================================



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



static void Test_aBFu7s_BFu7i_L()
{
  {
    init_simple_test("aBFu7s_BFu7i_L");
    static STRUCT_IF_C aBFu7s_BFu7i_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu7i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_L");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_L");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_L");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_L, aBFu7s_BFu7i_L)
//============================================================================



static void Test_aBFu7s_BFu7i_S()
{
  {
    init_simple_test("aBFu7s_BFu7i_S");
    static STRUCT_IF_C aBFu7s_BFu7i_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_S");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_S");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_S");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_S, aBFu7s_BFu7i_S)
//============================================================================



static void Test_aBFu7s_BFu7i_Uc()
{
  {
    init_simple_test("aBFu7s_BFu7i_Uc");
    static STRUCT_IF_C aBFu7s_BFu7i_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_Uc");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_Uc");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_Uc");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_Uc, aBFu7s_BFu7i_Uc)
//============================================================================



static void Test_aBFu7s_BFu7i_Ui()
{
  {
    init_simple_test("aBFu7s_BFu7i_Ui");
    static STRUCT_IF_C aBFu7s_BFu7i_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu7i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_Ui");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_Ui");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_Ui");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_Ui, aBFu7s_BFu7i_Ui)
//============================================================================



static void Test_aBFu7s_BFu7i_Ul()
{
  {
    init_simple_test("aBFu7s_BFu7i_Ul");
    static STRUCT_IF_C aBFu7s_BFu7i_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu7i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_Ul");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_Ul");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_Ul");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_Ul, aBFu7s_BFu7i_Ul)
//============================================================================



static void Test_aBFu7s_BFu7i_Us()
{
  {
    init_simple_test("aBFu7s_BFu7i_Us");
    static STRUCT_IF_C aBFu7s_BFu7i_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7i_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_Us");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7i_Us");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7i_Us");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7i_Us, aBFu7s_BFu7i_Us)
//============================================================================



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



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



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



static void Test_aBFu7s_BFu7ll_BFs7c_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7c_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7c_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7c_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7c_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7c_BFs7c, aBFu7s_BFu7ll_BFs7c_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7c_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7c_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7c_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7c_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7c_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7c_BFs7i, aBFu7s_BFu7ll_BFs7c_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7c_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7c_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7c_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7c_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7c_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7c_BFs7ll, aBFu7s_BFu7ll_BFs7c_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7c_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7c_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7c_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7c_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7c_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7c_BFs7s, aBFu7s_BFu7ll_BFs7c_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7c_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7c_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7c_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7c_BFu7c, aBFu7s_BFu7ll_BFs7c_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7c_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7c_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7c_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7c_BFu7i, aBFu7s_BFu7ll_BFs7c_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7c_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7c_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7c_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7c_BFu7ll, aBFu7s_BFu7ll_BFs7c_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7c_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7c_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7c_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7c_BFu7s, aBFu7s_BFu7ll_BFs7c_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7ll_BFs7i_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7i_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7i_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7i_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7i_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7i_BFs7c, aBFu7s_BFu7ll_BFs7i_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7i_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7i_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7i_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7i_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7i_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7i_BFs7i, aBFu7s_BFu7ll_BFs7i_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7i_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7i_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7i_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7i_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7i_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7i_BFs7ll, aBFu7s_BFu7ll_BFs7i_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7i_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7i_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7i_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7i_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7i_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7i_BFs7s, aBFu7s_BFu7ll_BFs7i_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7i_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7i_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7i_BFu7c, aBFu7s_BFu7ll_BFs7i_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7i_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7i_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7i_BFu7i, aBFu7s_BFu7ll_BFs7i_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7i_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7i_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7i_BFu7ll, aBFu7s_BFu7ll_BFs7i_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7i_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7i_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7i_BFu7s, aBFu7s_BFu7ll_BFs7i_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7ll_BFs7ll_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7ll_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7ll_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7ll_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7ll_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7ll_BFs7c, aBFu7s_BFu7ll_BFs7ll_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7ll_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7ll_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7ll_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7ll_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7ll_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7ll_BFs7i, aBFu7s_BFu7ll_BFs7ll_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7ll_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7ll_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7ll_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7ll_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7ll_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7ll_BFs7ll, aBFu7s_BFu7ll_BFs7ll_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7ll_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7ll_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7ll_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7ll_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7ll_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7ll_BFs7s, aBFu7s_BFu7ll_BFs7ll_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7ll_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7ll_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7ll_BFu7c, aBFu7s_BFu7ll_BFs7ll_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7ll_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7ll_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7ll_BFu7i, aBFu7s_BFu7ll_BFs7ll_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7ll_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7ll_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7ll_BFu7ll, aBFu7s_BFu7ll_BFs7ll_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7ll_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7ll_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7ll_BFu7s, aBFu7s_BFu7ll_BFs7ll_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7ll_BFs7s_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7s_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7s_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7s_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7s_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7s_BFs7c, aBFu7s_BFu7ll_BFs7s_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7s_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7s_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7s_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7s_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7s_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7s_BFs7i, aBFu7s_BFu7ll_BFs7s_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7s_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7s_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7s_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7s_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7s_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7s_BFs7ll, aBFu7s_BFu7ll_BFs7s_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7s_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7s_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7s_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7s_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7s_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7s_BFs7s, aBFu7s_BFu7ll_BFs7s_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7s_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7s_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7s_BFu7c, aBFu7s_BFu7ll_BFs7s_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7s_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7s_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7s_BFu7i, aBFu7s_BFu7ll_BFs7s_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7s_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7s_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7s_BFu7ll, aBFu7s_BFu7ll_BFs7s_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFs7s_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFs7s_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFs7s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFs7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFs7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFs7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFs7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFs7s_BFu7s, aBFu7s_BFu7ll_BFs7s_BFu7s)
//============================================================================



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



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



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



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



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



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



static void Test_aBFu7s_BFu7ll_BFu17i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu17i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu17i");
    set_bf_and_test(lv, v3, 1, 6, 17, 1, "aBFu7s_BFu7ll_BFu17i");
    set_bf_and_test(lv, v3, 1, 6, 17, hide_ull(1LL<<16), "aBFu7s_BFu7ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu17i, aBFu7s_BFu7ll_BFu17i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu17ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu17ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v3, 1, 6, 17, 1, "aBFu7s_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v3, 1, 6, 17, hide_ull(1LL<<16), "aBFu7s_BFu7ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu17ll, aBFu7s_BFu7ll_BFu17ll)
//============================================================================



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu7ll_BFu7c_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7c_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7c_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7c_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7c_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7c_BFs7c, aBFu7s_BFu7ll_BFu7c_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7c_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7c_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7c_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7c_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7c_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7c_BFs7i, aBFu7s_BFu7ll_BFu7c_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7c_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7c_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7c_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7c_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7c_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7c_BFs7ll, aBFu7s_BFu7ll_BFu7c_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7c_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7c_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7c_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7c_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7c_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7c_BFs7s, aBFu7s_BFu7ll_BFu7c_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7c_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7c_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7c_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7c_BFu7c, aBFu7s_BFu7ll_BFu7c_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7c_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7c_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7c_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7c_BFu7i, aBFu7s_BFu7ll_BFu7c_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7c_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7c_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7c_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7c_BFu7ll, aBFu7s_BFu7ll_BFu7c_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7c_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7c_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7c_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7c_BFu7s, aBFu7s_BFu7ll_BFu7c_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7ll_BFu7i_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7i_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7i_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7i_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7i_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7i_BFs7c, aBFu7s_BFu7ll_BFu7i_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7i_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7i_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7i_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7i_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7i_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7i_BFs7i, aBFu7s_BFu7ll_BFu7i_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7i_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7i_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7i_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7i_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7i_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7i_BFs7ll, aBFu7s_BFu7ll_BFu7i_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7i_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7i_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7i_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7i_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7i_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7i_BFs7s, aBFu7s_BFu7ll_BFu7i_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7i_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7i_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7i_BFu7c, aBFu7s_BFu7ll_BFu7i_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7i_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7i_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7i_BFu7i, aBFu7s_BFu7ll_BFu7i_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7i_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7i_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7i_BFu7ll, aBFu7s_BFu7ll_BFu7i_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7i_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7i_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7i_BFu7s, aBFu7s_BFu7ll_BFu7i_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7ll_BFu7ll_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7ll_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7ll_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7ll_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7ll_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7ll_BFs7c, aBFu7s_BFu7ll_BFu7ll_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7ll_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7ll_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7ll_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7ll_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7ll_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7ll_BFs7i, aBFu7s_BFu7ll_BFu7ll_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7ll_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7ll_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7ll_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7ll_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7ll_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7ll_BFs7ll, aBFu7s_BFu7ll_BFu7ll_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7ll_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7ll_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7ll_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7ll_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7ll_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7ll_BFs7s, aBFu7s_BFu7ll_BFu7ll_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7ll_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7ll_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7ll_BFu7c, aBFu7s_BFu7ll_BFu7ll_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7ll_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7ll_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7ll_BFu7i, aBFu7s_BFu7ll_BFu7ll_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7ll_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7ll_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7ll_BFu7ll, aBFu7s_BFu7ll_BFu7ll_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7ll_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7ll_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7ll_BFu7s, aBFu7s_BFu7ll_BFu7ll_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7ll_BFu7s_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7s_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7s_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7s_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7s_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7s_BFs7c, aBFu7s_BFu7ll_BFu7s_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7s_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7s_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7s_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7s_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7s_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7s_BFs7i, aBFu7s_BFu7ll_BFu7s_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7s_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7s_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7s_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7s_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7s_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7s_BFs7ll, aBFu7s_BFu7ll_BFu7s_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7s_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7s_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7s_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7s_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7s_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7s_BFs7s, aBFu7s_BFu7ll_BFu7s_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7s_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7s_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7s_BFu7c, aBFu7s_BFu7ll_BFu7s_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7s_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7s_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7s_BFu7i, aBFu7s_BFu7ll_BFu7s_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7s_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7s_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7s_BFu7ll, aBFu7s_BFu7ll_BFu7s_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu7s_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu7s_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu7s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_BFu7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7ll_BFu7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu7s_BFu7s, aBFu7s_BFu7ll_BFu7s_BFu7s)
//============================================================================



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



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



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



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



static void Test_aBFu7s_BFu7ll_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu9i");
    set_bf_and_test(lv, v3, 1, 6, 9, 1, "aBFu7s_BFu7ll_BFu9i");
    set_bf_and_test(lv, v3, 1, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu7ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu9i, aBFu7s_BFu7ll_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v3, 1, 6, 9, 1, "aBFu7s_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v3, 1, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu7ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu9ll, aBFu7s_BFu7ll_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu7ll_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu7ll_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu7ll_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_BFu9s");
    set_bf_and_test(lv, v3, 1, 6, 9, 1, "aBFu7s_BFu7ll_BFu9s");
    set_bf_and_test(lv, v3, 1, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu7ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_BFu9s, aBFu7s_BFu7ll_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu7ll_C()
{
  {
    init_simple_test("aBFu7s_BFu7ll_C");
    static STRUCT_IF_C aBFu7s_BFu7ll_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_C");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_C");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_C");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_C, aBFu7s_BFu7ll_C)
//============================================================================



static void Test_aBFu7s_BFu7ll_D()
{
  {
    init_simple_test("aBFu7s_BFu7ll_D");
    static STRUCT_IF_C aBFu7s_BFu7ll_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu7ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_D");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_D");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_D");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_D, aBFu7s_BFu7ll_D)
//============================================================================



static void Test_aBFu7s_BFu7ll_F()
{
  {
    init_simple_test("aBFu7s_BFu7ll_F");
    static STRUCT_IF_C aBFu7s_BFu7ll_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu7ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_F");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_F");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_F");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_F, aBFu7s_BFu7ll_F)
//============================================================================



static void Test_aBFu7s_BFu7ll_I()
{
  {
    init_simple_test("aBFu7s_BFu7ll_I");
    static STRUCT_IF_C aBFu7s_BFu7ll_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu7ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_I");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_I");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_I");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_I, aBFu7s_BFu7ll_I)
//============================================================================



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



static void Test_aBFu7s_BFu7ll_L()
{
  {
    init_simple_test("aBFu7s_BFu7ll_L");
    static STRUCT_IF_C aBFu7s_BFu7ll_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu7ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_L");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_L");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_L");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_L, aBFu7s_BFu7ll_L)
//============================================================================



static void Test_aBFu7s_BFu7ll_S()
{
  {
    init_simple_test("aBFu7s_BFu7ll_S");
    static STRUCT_IF_C aBFu7s_BFu7ll_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_S");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_S");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_S");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_S, aBFu7s_BFu7ll_S)
//============================================================================



static void Test_aBFu7s_BFu7ll_Uc()
{
  {
    init_simple_test("aBFu7s_BFu7ll_Uc");
    static STRUCT_IF_C aBFu7s_BFu7ll_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_Uc");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_Uc");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_Uc");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_Uc, aBFu7s_BFu7ll_Uc)
//============================================================================



static void Test_aBFu7s_BFu7ll_Ui()
{
  {
    init_simple_test("aBFu7s_BFu7ll_Ui");
    static STRUCT_IF_C aBFu7s_BFu7ll_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu7ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_Ui");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_Ui");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_Ui");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_Ui, aBFu7s_BFu7ll_Ui)
//============================================================================



static void Test_aBFu7s_BFu7ll_Ul()
{
  {
    init_simple_test("aBFu7s_BFu7ll_Ul");
    static STRUCT_IF_C aBFu7s_BFu7ll_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu7ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_Ul");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_Ul");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_Ul");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_Ul, aBFu7s_BFu7ll_Ul)
//============================================================================



static void Test_aBFu7s_BFu7ll_Us()
{
  {
    init_simple_test("aBFu7s_BFu7ll_Us");
    static STRUCT_IF_C aBFu7s_BFu7ll_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_Us");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7ll_Us");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7ll_Us");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7ll_Us, aBFu7s_BFu7ll_Us)
//============================================================================



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



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



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



static void Test_aBFu7s_BFu7s_BFs7c_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7c_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7c_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7c_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7c_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7c_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7c_BFs7c, aBFu7s_BFu7s_BFs7c_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7c_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7c_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7c_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7c_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7c_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7c_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7c_BFs7i, aBFu7s_BFu7s_BFs7c_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7c_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7c_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7c_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7c_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7c_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7c_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7c_BFs7ll, aBFu7s_BFu7s_BFs7c_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7c_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7c_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7c_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7c_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7c_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7c_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7c_BFs7s, aBFu7s_BFu7s_BFs7c_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7c_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7c_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7c_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7c_BFu7c, aBFu7s_BFu7s_BFs7c_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7c_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7c_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7c_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7c_BFu7i, aBFu7s_BFu7s_BFs7c_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7c_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7c_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7c_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7c_BFu7ll, aBFu7s_BFu7s_BFs7c_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7c_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7c_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7c_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7c_BFu7s, aBFu7s_BFu7s_BFs7c_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7s_BFs7i_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7i_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7i_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7i_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7i_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7i_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7i_BFs7c, aBFu7s_BFu7s_BFs7i_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7i_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7i_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7i_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7i_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7i_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7i_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7i_BFs7i, aBFu7s_BFu7s_BFs7i_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7i_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7i_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7i_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7i_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7i_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7i_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7i_BFs7ll, aBFu7s_BFu7s_BFs7i_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7i_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7i_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7i_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7i_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7i_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7i_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7i_BFs7s, aBFu7s_BFu7s_BFs7i_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7i_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7i_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7i_BFu7c, aBFu7s_BFu7s_BFs7i_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7i_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7i_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7i_BFu7i, aBFu7s_BFu7s_BFs7i_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7i_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7i_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7i_BFu7ll, aBFu7s_BFu7s_BFs7i_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7i_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7i_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7i_BFu7s, aBFu7s_BFu7s_BFs7i_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7s_BFs7ll_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7ll_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7ll_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7ll_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7ll_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7ll_BFs7c, aBFu7s_BFu7s_BFs7ll_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7ll_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7ll_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7ll_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7ll_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7ll_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7ll_BFs7i, aBFu7s_BFu7s_BFs7ll_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7ll_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7ll_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7ll_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7ll_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7ll_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7ll_BFs7ll, aBFu7s_BFu7s_BFs7ll_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7ll_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7ll_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7ll_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7ll_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7ll_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7ll_BFs7s, aBFu7s_BFu7s_BFs7ll_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7ll_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7ll_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7ll_BFu7c, aBFu7s_BFu7s_BFs7ll_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7ll_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7ll_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7ll_BFu7i, aBFu7s_BFu7s_BFs7ll_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7ll_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7ll_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7ll_BFu7ll, aBFu7s_BFu7s_BFs7ll_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7ll_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7ll_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7ll_BFu7s, aBFu7s_BFu7s_BFs7ll_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7s_BFs7s_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7s_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7s_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7s_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7s_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7s_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7s_BFs7c, aBFu7s_BFu7s_BFs7s_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7s_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7s_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7s_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7s_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7s_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7s_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7s_BFs7i, aBFu7s_BFu7s_BFs7s_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7s_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7s_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7s_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7s_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7s_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7s_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7s_BFs7ll, aBFu7s_BFu7s_BFs7s_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7s_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7s_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7s_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7s_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7s_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7s_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7s_BFs7s, aBFu7s_BFu7s_BFs7s_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7s_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7s_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7s_BFu7c, aBFu7s_BFu7s_BFs7s_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7s_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7s_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7s_BFu7i, aBFu7s_BFu7s_BFs7s_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7s_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7s_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7s_BFu7ll, aBFu7s_BFu7s_BFs7s_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7s_BFs7s_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFs7s_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7s_BFs7s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFs7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFs7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFs7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFs7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFs7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFs7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFs7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFs7s_BFu7s, aBFu7s_BFu7s_BFs7s_BFu7s)
//============================================================================



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



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



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



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



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



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



static void Test_aBFu7s_BFu7s_BFu17i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu17i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu17i");
    set_bf_and_test(lv, v3, 1, 6, 17, 1, "aBFu7s_BFu7s_BFu17i");
    set_bf_and_test(lv, v3, 1, 6, 17, hide_ull(1LL<<16), "aBFu7s_BFu7s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu17i, aBFu7s_BFu7s_BFu17i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu17ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu17ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu17ll");
    set_bf_and_test(lv, v3, 1, 6, 17, 1, "aBFu7s_BFu7s_BFu17ll");
    set_bf_and_test(lv, v3, 1, 6, 17, hide_ull(1LL<<16), "aBFu7s_BFu7s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu17ll, aBFu7s_BFu7s_BFu17ll)
//============================================================================



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



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



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu7s_BFu7c_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7c_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7c_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7c_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7c_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7c_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7c_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7c_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7c_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7c_BFs7c, aBFu7s_BFu7s_BFu7c_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7c_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7c_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7c_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7c_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7c_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7c_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7c_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7c_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7c_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7c_BFs7i, aBFu7s_BFu7s_BFu7c_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7c_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7c_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7c_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7c_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7c_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7c_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7c_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7c_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7c_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7c_BFs7ll, aBFu7s_BFu7s_BFu7c_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7c_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7c_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7c_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7c_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7c_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7c_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7c_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7c_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7c_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7c_BFs7s, aBFu7s_BFu7s_BFu7c_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7c_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7c_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7c_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7c_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7c_BFu7c, aBFu7s_BFu7s_BFu7c_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7c_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7c_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7c_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7c_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7c_BFu7i, aBFu7s_BFu7s_BFu7c_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7c_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7c_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7c_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7c_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7c_BFu7ll, aBFu7s_BFu7s_BFu7c_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7c_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7c_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7c_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7c_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7c_BFu7s, aBFu7s_BFu7s_BFu7c_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7s_BFu7i_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7i_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7i_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7i_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7i_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7i_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7i_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7i_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7i_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7i_BFs7c, aBFu7s_BFu7s_BFu7i_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7i_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7i_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7i_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7i_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7i_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7i_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7i_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7i_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7i_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7i_BFs7i, aBFu7s_BFu7s_BFu7i_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7i_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7i_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7i_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7i_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7i_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7i_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7i_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7i_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7i_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7i_BFs7ll, aBFu7s_BFu7s_BFu7i_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7i_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7i_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7i_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7i_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7i_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7i_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7i_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7i_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7i_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7i_BFs7s, aBFu7s_BFu7s_BFu7i_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7i_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7i_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7i_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7i_BFu7c, aBFu7s_BFu7s_BFu7i_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7i_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7i_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7i_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7i_BFu7i, aBFu7s_BFu7s_BFu7i_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7i_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7i_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7i_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7i_BFu7ll, aBFu7s_BFu7s_BFu7i_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7i_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7i_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7i_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7i_BFu7s, aBFu7s_BFu7s_BFu7i_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7s_BFu7ll_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7ll_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7ll_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7ll_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7ll_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7ll_BFs7c, aBFu7s_BFu7s_BFu7ll_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7ll_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7ll_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7ll_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7ll_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7ll_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7ll_BFs7i, aBFu7s_BFu7s_BFu7ll_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7ll_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7ll_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7ll_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7ll_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7ll_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7ll_BFs7ll, aBFu7s_BFu7s_BFu7ll_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7ll_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7ll_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7ll_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7ll_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7ll_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7ll_BFs7s, aBFu7s_BFu7s_BFu7ll_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7ll_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7ll_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7ll_BFu7c, aBFu7s_BFu7s_BFu7ll_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7ll_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7ll_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7ll_BFu7i, aBFu7s_BFu7s_BFu7ll_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7ll_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7ll_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7ll_BFu7ll, aBFu7s_BFu7s_BFu7ll_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7ll_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7ll_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7ll_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7ll_BFu7s, aBFu7s_BFu7s_BFu7ll_BFu7s)
//============================================================================



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



static void Test_aBFu7s_BFu7s_BFu7s_BFs7c()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7s_BFs7c");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7s_BFs7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7s_BFs7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7s_BFs7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7s_BFs7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7s_BFs7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7s_BFs7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7s_BFs7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFs7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7s_BFs7c, aBFu7s_BFu7s_BFu7s_BFs7c)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7s_BFs7i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7s_BFs7i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7s_BFs7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7s_BFs7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7s_BFs7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7s_BFs7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7s_BFs7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7s_BFs7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7s_BFs7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFs7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7s_BFs7i, aBFu7s_BFu7s_BFu7s_BFs7i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7s_BFs7ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7s_BFs7ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7s_BFs7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7s_BFs7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7s_BFs7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7s_BFs7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7s_BFs7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7s_BFs7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7s_BFs7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFs7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7s_BFs7ll, aBFu7s_BFu7s_BFu7s_BFs7ll)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7s_BFs7s()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7s_BFs7s");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7s_BFs7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7s_BFs7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7s_BFs7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7s_BFs7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7s_BFs7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7s_BFs7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7s_BFs7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_sll(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFs7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7s_BFs7s, aBFu7s_BFu7s_BFu7s_BFs7s)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7s_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7s_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7s_BFu7c");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7s_BFu7c, aBFu7s_BFu7s_BFu7s_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7s_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7s_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7s_BFu7i");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7s_BFu7i, aBFu7s_BFu7s_BFu7s_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7s_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7s_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7s_BFu7ll");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7s_BFu7ll, aBFu7s_BFu7s_BFu7s_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu7s_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu7s_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu7s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_BFu7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, 1, "aBFu7s_BFu7s_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 1, 6, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, 1, "aBFu7s_BFu7s_BFu7s_BFu7s");
    set_bf_and_test(lv, v4, 2, 5, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu7s_BFu7s, aBFu7s_BFu7s_BFu7s_BFu7s)
//============================================================================



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



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



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



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



static void Test_aBFu7s_BFu7s_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu9i");
    set_bf_and_test(lv, v3, 1, 6, 9, 1, "aBFu7s_BFu7s_BFu9i");
    set_bf_and_test(lv, v3, 1, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu7s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu9i, aBFu7s_BFu7s_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu9ll");
    set_bf_and_test(lv, v3, 1, 6, 9, 1, "aBFu7s_BFu7s_BFu9ll");
    set_bf_and_test(lv, v3, 1, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu7s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu9ll, aBFu7s_BFu7s_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu7s_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu7s_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu7s_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_BFu9s");
    set_bf_and_test(lv, v3, 1, 6, 9, 1, "aBFu7s_BFu7s_BFu9s");
    set_bf_and_test(lv, v3, 1, 6, 9, hide_ull(1LL<<8), "aBFu7s_BFu7s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_BFu9s, aBFu7s_BFu7s_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu7s_C()
{
  {
    init_simple_test("aBFu7s_BFu7s_C");
    static STRUCT_IF_C aBFu7s_BFu7s_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_C");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_C");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_C");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_C, aBFu7s_BFu7s_C)
//============================================================================



static void Test_aBFu7s_BFu7s_D()
{
  {
    init_simple_test("aBFu7s_BFu7s_D");
    static STRUCT_IF_C aBFu7s_BFu7s_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu7s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_D");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_D");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_D");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_D, aBFu7s_BFu7s_D)
//============================================================================



static void Test_aBFu7s_BFu7s_F()
{
  {
    init_simple_test("aBFu7s_BFu7s_F");
    static STRUCT_IF_C aBFu7s_BFu7s_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu7s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_F");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_F");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_F");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_F, aBFu7s_BFu7s_F)
//============================================================================



static void Test_aBFu7s_BFu7s_I()
{
  {
    init_simple_test("aBFu7s_BFu7s_I");
    static STRUCT_IF_C aBFu7s_BFu7s_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu7s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_I");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_I");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_I");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_I, aBFu7s_BFu7s_I)
//============================================================================



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



static void Test_aBFu7s_BFu7s_L()
{
  {
    init_simple_test("aBFu7s_BFu7s_L");
    static STRUCT_IF_C aBFu7s_BFu7s_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu7s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_L");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_L");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_L");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_L, aBFu7s_BFu7s_L)
//============================================================================



static void Test_aBFu7s_BFu7s_S()
{
  {
    init_simple_test("aBFu7s_BFu7s_S");
    static STRUCT_IF_C aBFu7s_BFu7s_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_S");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_S");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_S");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_S, aBFu7s_BFu7s_S)
//============================================================================



static void Test_aBFu7s_BFu7s_Uc()
{
  {
    init_simple_test("aBFu7s_BFu7s_Uc");
    static STRUCT_IF_C aBFu7s_BFu7s_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu7s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_Uc");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_Uc");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_Uc");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_Uc, aBFu7s_BFu7s_Uc)
//============================================================================



static void Test_aBFu7s_BFu7s_Ui()
{
  {
    init_simple_test("aBFu7s_BFu7s_Ui");
    static STRUCT_IF_C aBFu7s_BFu7s_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu7s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_Ui");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_Ui");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_Ui");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_Ui, aBFu7s_BFu7s_Ui)
//============================================================================



static void Test_aBFu7s_BFu7s_Ul()
{
  {
    init_simple_test("aBFu7s_BFu7s_Ul");
    static STRUCT_IF_C aBFu7s_BFu7s_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu7s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_Ul");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_Ul");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_Ul");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_Ul, aBFu7s_BFu7s_Ul)
//============================================================================



static void Test_aBFu7s_BFu7s_Us()
{
  {
    init_simple_test("aBFu7s_BFu7s_Us");
    static STRUCT_IF_C aBFu7s_BFu7s_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu7s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu7s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu7s_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_Us");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu7s_BFu7s_Us");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu7s_BFu7s_Us");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu7s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu7s_Us, aBFu7s_BFu7s_Us)
//============================================================================



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



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



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



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



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



static void Test_aBFu7s_BFu8c_BFu16i()
{
  {
    init_simple_test("aBFu7s_BFu8c_BFu16i");
    static STRUCT_IF_C aBFu7s_BFu8c_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_BFu16i");
    set_bf_and_test(lv, v3, 1, 7, 16, 1, "aBFu7s_BFu8c_BFu16i");
    set_bf_and_test(lv, v3, 1, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu8c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_BFu16i, aBFu7s_BFu8c_BFu16i)
//============================================================================



static void Test_aBFu7s_BFu8c_BFu16ll()
{
  {
    init_simple_test("aBFu7s_BFu8c_BFu16ll");
    static STRUCT_IF_C aBFu7s_BFu8c_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_BFu16ll");
    set_bf_and_test(lv, v3, 1, 7, 16, 1, "aBFu7s_BFu8c_BFu16ll");
    set_bf_and_test(lv, v3, 1, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu8c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_BFu16ll, aBFu7s_BFu8c_BFu16ll)
//============================================================================



static void Test_aBFu7s_BFu8c_BFu16s()
{
  {
    init_simple_test("aBFu7s_BFu8c_BFu16s");
    static STRUCT_IF_C aBFu7s_BFu8c_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_BFu16s");
    set_bf_and_test(lv, v3, 1, 7, 16, 1, "aBFu7s_BFu8c_BFu16s");
    set_bf_and_test(lv, v3, 1, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu8c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_BFu16s, aBFu7s_BFu8c_BFu16s)
//============================================================================



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu8c_BFu32i()
{
  {
    init_simple_test("aBFu7s_BFu8c_BFu32i");
    static STRUCT_IF_C aBFu7s_BFu8c_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8c_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_BFu32i");
    set_bf_and_test(lv, v3, 1, 7, 32, 1, "aBFu7s_BFu8c_BFu32i");
    set_bf_and_test(lv, v3, 1, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu8c_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_BFu32i, aBFu7s_BFu8c_BFu32i)
//============================================================================



static void Test_aBFu7s_BFu8c_BFu32ll()
{
  {
    init_simple_test("aBFu7s_BFu8c_BFu32ll");
    static STRUCT_IF_C aBFu7s_BFu8c_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8c_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_BFu32ll");
    set_bf_and_test(lv, v3, 1, 7, 32, 1, "aBFu7s_BFu8c_BFu32ll");
    set_bf_and_test(lv, v3, 1, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu8c_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_BFu32ll, aBFu7s_BFu8c_BFu32ll)
//============================================================================



static void Test_aBFu7s_BFu8c_BFu33()
{
  {
    init_simple_test("aBFu7s_BFu8c_BFu33");
    static STRUCT_IF_C aBFu7s_BFu8c_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8c_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_BFu33");
    set_bf_and_test(lv, v3, 1, 7, 33, 1, "aBFu7s_BFu8c_BFu33");
    set_bf_and_test(lv, v3, 1, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu8c_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_BFu33, aBFu7s_BFu8c_BFu33)
//============================================================================



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu8c_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu8c_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu8c_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_BFu9i");
    set_bf_and_test(lv, v3, 1, 7, 9, 1, "aBFu7s_BFu8c_BFu9i");
    set_bf_and_test(lv, v3, 1, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu8c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_BFu9i, aBFu7s_BFu8c_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu8c_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu8c_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu8c_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_BFu9ll");
    set_bf_and_test(lv, v3, 1, 7, 9, 1, "aBFu7s_BFu8c_BFu9ll");
    set_bf_and_test(lv, v3, 1, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu8c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_BFu9ll, aBFu7s_BFu8c_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu8c_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu8c_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu8c_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_BFu9s");
    set_bf_and_test(lv, v3, 1, 7, 9, 1, "aBFu7s_BFu8c_BFu9s");
    set_bf_and_test(lv, v3, 1, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu8c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_BFu9s, aBFu7s_BFu8c_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu8c_C()
{
  {
    init_simple_test("aBFu7s_BFu8c_C");
    static STRUCT_IF_C aBFu7s_BFu8c_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8c_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_C");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_C");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_C");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8c_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_C, aBFu7s_BFu8c_C)
//============================================================================



static void Test_aBFu7s_BFu8c_D()
{
  {
    init_simple_test("aBFu7s_BFu8c_D");
    static STRUCT_IF_C aBFu7s_BFu8c_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu8c_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_D");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_D");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_D");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8c_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_D, aBFu7s_BFu8c_D)
//============================================================================



static void Test_aBFu7s_BFu8c_F()
{
  {
    init_simple_test("aBFu7s_BFu8c_F");
    static STRUCT_IF_C aBFu7s_BFu8c_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8c_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_F");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_F");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_F");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8c_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_F, aBFu7s_BFu8c_F)
//============================================================================



static void Test_aBFu7s_BFu8c_I()
{
  {
    init_simple_test("aBFu7s_BFu8c_I");
    static STRUCT_IF_C aBFu7s_BFu8c_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8c_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_I");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_I");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_I");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8c_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_I, aBFu7s_BFu8c_I)
//============================================================================



static void Test_aBFu7s_BFu8c_Ip()
{
  {
    init_simple_test("aBFu7s_BFu8c_Ip");
    static STRUCT_IF_C aBFu7s_BFu8c_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_BFu8c_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_Ip");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_Ip");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_Ip");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8c_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_Ip, aBFu7s_BFu8c_Ip)
//============================================================================



static void Test_aBFu7s_BFu8c_L()
{
  {
    init_simple_test("aBFu7s_BFu8c_L");
    static STRUCT_IF_C aBFu7s_BFu8c_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu8c_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_L");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_L");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_L");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8c_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_L, aBFu7s_BFu8c_L)
//============================================================================



static void Test_aBFu7s_BFu8c_S()
{
  {
    init_simple_test("aBFu7s_BFu8c_S");
    static STRUCT_IF_C aBFu7s_BFu8c_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8c_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_S");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_S");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_S");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8c_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_S, aBFu7s_BFu8c_S)
//============================================================================



static void Test_aBFu7s_BFu8c_Uc()
{
  {
    init_simple_test("aBFu7s_BFu8c_Uc");
    static STRUCT_IF_C aBFu7s_BFu8c_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8c_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_Uc");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_Uc");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_Uc");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8c_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_Uc, aBFu7s_BFu8c_Uc)
//============================================================================



static void Test_aBFu7s_BFu8c_Ui()
{
  {
    init_simple_test("aBFu7s_BFu8c_Ui");
    static STRUCT_IF_C aBFu7s_BFu8c_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8c_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_Ui");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_Ui");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_Ui");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8c_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_Ui, aBFu7s_BFu8c_Ui)
//============================================================================



static void Test_aBFu7s_BFu8c_Ul()
{
  {
    init_simple_test("aBFu7s_BFu8c_Ul");
    static STRUCT_IF_C aBFu7s_BFu8c_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu8c_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_Ul");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_Ul");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_Ul");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8c_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_Ul, aBFu7s_BFu8c_Ul)
//============================================================================



static void Test_aBFu7s_BFu8c_Us()
{
  {
    init_simple_test("aBFu7s_BFu8c_Us");
    static STRUCT_IF_C aBFu7s_BFu8c_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8c_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_Us");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_Us");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_Us");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8c_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_Us, aBFu7s_BFu8c_Us)
//============================================================================



static void Test_aBFu7s_BFu8c_Vp()
{
  {
    init_simple_test("aBFu7s_BFu8c_Vp");
    static STRUCT_IF_C aBFu7s_BFu8c_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_BFu8c_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8c_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8c_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8c_Vp");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8c_Vp");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8c_Vp");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8c_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8c_Vp, aBFu7s_BFu8c_Vp)
//============================================================================



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



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



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



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



static void Test_aBFu7s_BFu8i_BFu16i()
{
  {
    init_simple_test("aBFu7s_BFu8i_BFu16i");
    static STRUCT_IF_C aBFu7s_BFu8i_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_BFu16i");
    set_bf_and_test(lv, v3, 1, 7, 16, 1, "aBFu7s_BFu8i_BFu16i");
    set_bf_and_test(lv, v3, 1, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu8i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_BFu16i, aBFu7s_BFu8i_BFu16i)
//============================================================================



static void Test_aBFu7s_BFu8i_BFu16ll()
{
  {
    init_simple_test("aBFu7s_BFu8i_BFu16ll");
    static STRUCT_IF_C aBFu7s_BFu8i_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_BFu16ll");
    set_bf_and_test(lv, v3, 1, 7, 16, 1, "aBFu7s_BFu8i_BFu16ll");
    set_bf_and_test(lv, v3, 1, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu8i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_BFu16ll, aBFu7s_BFu8i_BFu16ll)
//============================================================================



static void Test_aBFu7s_BFu8i_BFu16s()
{
  {
    init_simple_test("aBFu7s_BFu8i_BFu16s");
    static STRUCT_IF_C aBFu7s_BFu8i_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_BFu16s");
    set_bf_and_test(lv, v3, 1, 7, 16, 1, "aBFu7s_BFu8i_BFu16s");
    set_bf_and_test(lv, v3, 1, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu8i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_BFu16s, aBFu7s_BFu8i_BFu16s)
//============================================================================



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu8i_BFu32i()
{
  {
    init_simple_test("aBFu7s_BFu8i_BFu32i");
    static STRUCT_IF_C aBFu7s_BFu8i_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_BFu32i");
    set_bf_and_test(lv, v3, 1, 7, 32, 1, "aBFu7s_BFu8i_BFu32i");
    set_bf_and_test(lv, v3, 1, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu8i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_BFu32i, aBFu7s_BFu8i_BFu32i)
//============================================================================



static void Test_aBFu7s_BFu8i_BFu32ll()
{
  {
    init_simple_test("aBFu7s_BFu8i_BFu32ll");
    static STRUCT_IF_C aBFu7s_BFu8i_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_BFu32ll");
    set_bf_and_test(lv, v3, 1, 7, 32, 1, "aBFu7s_BFu8i_BFu32ll");
    set_bf_and_test(lv, v3, 1, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu8i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_BFu32ll, aBFu7s_BFu8i_BFu32ll)
//============================================================================



static void Test_aBFu7s_BFu8i_BFu33()
{
  {
    init_simple_test("aBFu7s_BFu8i_BFu33");
    static STRUCT_IF_C aBFu7s_BFu8i_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_BFu33");
    set_bf_and_test(lv, v3, 1, 7, 33, 1, "aBFu7s_BFu8i_BFu33");
    set_bf_and_test(lv, v3, 1, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu8i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_BFu33, aBFu7s_BFu8i_BFu33)
//============================================================================



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu8i_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu8i_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu8i_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_BFu9i");
    set_bf_and_test(lv, v3, 1, 7, 9, 1, "aBFu7s_BFu8i_BFu9i");
    set_bf_and_test(lv, v3, 1, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu8i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_BFu9i, aBFu7s_BFu8i_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu8i_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu8i_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu8i_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_BFu9ll");
    set_bf_and_test(lv, v3, 1, 7, 9, 1, "aBFu7s_BFu8i_BFu9ll");
    set_bf_and_test(lv, v3, 1, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu8i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_BFu9ll, aBFu7s_BFu8i_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu8i_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu8i_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu8i_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_BFu9s");
    set_bf_and_test(lv, v3, 1, 7, 9, 1, "aBFu7s_BFu8i_BFu9s");
    set_bf_and_test(lv, v3, 1, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu8i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_BFu9s, aBFu7s_BFu8i_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu8i_C()
{
  {
    init_simple_test("aBFu7s_BFu8i_C");
    static STRUCT_IF_C aBFu7s_BFu8i_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_C");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_C");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_C");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_C, aBFu7s_BFu8i_C)
//============================================================================



static void Test_aBFu7s_BFu8i_D()
{
  {
    init_simple_test("aBFu7s_BFu8i_D");
    static STRUCT_IF_C aBFu7s_BFu8i_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu8i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_D");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_D");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_D");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_D, aBFu7s_BFu8i_D)
//============================================================================



static void Test_aBFu7s_BFu8i_F()
{
  {
    init_simple_test("aBFu7s_BFu8i_F");
    static STRUCT_IF_C aBFu7s_BFu8i_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_F");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_F");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_F");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_F, aBFu7s_BFu8i_F)
//============================================================================



static void Test_aBFu7s_BFu8i_I()
{
  {
    init_simple_test("aBFu7s_BFu8i_I");
    static STRUCT_IF_C aBFu7s_BFu8i_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_I");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_I");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_I");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_I, aBFu7s_BFu8i_I)
//============================================================================



static void Test_aBFu7s_BFu8i_Ip()
{
  {
    init_simple_test("aBFu7s_BFu8i_Ip");
    static STRUCT_IF_C aBFu7s_BFu8i_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_BFu8i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_Ip");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_Ip");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_Ip");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_Ip, aBFu7s_BFu8i_Ip)
//============================================================================



static void Test_aBFu7s_BFu8i_L()
{
  {
    init_simple_test("aBFu7s_BFu8i_L");
    static STRUCT_IF_C aBFu7s_BFu8i_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu8i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_L");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_L");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_L");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_L, aBFu7s_BFu8i_L)
//============================================================================



static void Test_aBFu7s_BFu8i_S()
{
  {
    init_simple_test("aBFu7s_BFu8i_S");
    static STRUCT_IF_C aBFu7s_BFu8i_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_S");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_S");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_S");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_S, aBFu7s_BFu8i_S)
//============================================================================



static void Test_aBFu7s_BFu8i_Uc()
{
  {
    init_simple_test("aBFu7s_BFu8i_Uc");
    static STRUCT_IF_C aBFu7s_BFu8i_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_Uc");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_Uc");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_Uc");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_Uc, aBFu7s_BFu8i_Uc)
//============================================================================



static void Test_aBFu7s_BFu8i_Ui()
{
  {
    init_simple_test("aBFu7s_BFu8i_Ui");
    static STRUCT_IF_C aBFu7s_BFu8i_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_Ui");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_Ui");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_Ui");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_Ui, aBFu7s_BFu8i_Ui)
//============================================================================



static void Test_aBFu7s_BFu8i_Ul()
{
  {
    init_simple_test("aBFu7s_BFu8i_Ul");
    static STRUCT_IF_C aBFu7s_BFu8i_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu8i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_Ul");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_Ul");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_Ul");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_Ul, aBFu7s_BFu8i_Ul)
//============================================================================



static void Test_aBFu7s_BFu8i_Us()
{
  {
    init_simple_test("aBFu7s_BFu8i_Us");
    static STRUCT_IF_C aBFu7s_BFu8i_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_Us");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_Us");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_Us");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_Us, aBFu7s_BFu8i_Us)
//============================================================================



static void Test_aBFu7s_BFu8i_Vp()
{
  {
    init_simple_test("aBFu7s_BFu8i_Vp");
    static STRUCT_IF_C aBFu7s_BFu8i_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_BFu8i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8i_Vp");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8i_Vp");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8i_Vp");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8i_Vp, aBFu7s_BFu8i_Vp)
//============================================================================



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



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



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



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



static void Test_aBFu7s_BFu8ll_BFu16i()
{
  {
    init_simple_test("aBFu7s_BFu8ll_BFu16i");
    static STRUCT_IF_C aBFu7s_BFu8ll_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_BFu16i");
    set_bf_and_test(lv, v3, 1, 7, 16, 1, "aBFu7s_BFu8ll_BFu16i");
    set_bf_and_test(lv, v3, 1, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu8ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_BFu16i, aBFu7s_BFu8ll_BFu16i)
//============================================================================



static void Test_aBFu7s_BFu8ll_BFu16ll()
{
  {
    init_simple_test("aBFu7s_BFu8ll_BFu16ll");
    static STRUCT_IF_C aBFu7s_BFu8ll_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v3, 1, 7, 16, 1, "aBFu7s_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v3, 1, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu8ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_BFu16ll, aBFu7s_BFu8ll_BFu16ll)
//============================================================================



static void Test_aBFu7s_BFu8ll_BFu16s()
{
  {
    init_simple_test("aBFu7s_BFu8ll_BFu16s");
    static STRUCT_IF_C aBFu7s_BFu8ll_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_BFu16s");
    set_bf_and_test(lv, v3, 1, 7, 16, 1, "aBFu7s_BFu8ll_BFu16s");
    set_bf_and_test(lv, v3, 1, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu8ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_BFu16s, aBFu7s_BFu8ll_BFu16s)
//============================================================================



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu8ll_BFu32i()
{
  {
    init_simple_test("aBFu7s_BFu8ll_BFu32i");
    static STRUCT_IF_C aBFu7s_BFu8ll_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_BFu32i");
    set_bf_and_test(lv, v3, 1, 7, 32, 1, "aBFu7s_BFu8ll_BFu32i");
    set_bf_and_test(lv, v3, 1, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu8ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_BFu32i, aBFu7s_BFu8ll_BFu32i)
//============================================================================



static void Test_aBFu7s_BFu8ll_BFu32ll()
{
  {
    init_simple_test("aBFu7s_BFu8ll_BFu32ll");
    static STRUCT_IF_C aBFu7s_BFu8ll_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v3, 1, 7, 32, 1, "aBFu7s_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v3, 1, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu8ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_BFu32ll, aBFu7s_BFu8ll_BFu32ll)
//============================================================================



static void Test_aBFu7s_BFu8ll_BFu33()
{
  {
    init_simple_test("aBFu7s_BFu8ll_BFu33");
    static STRUCT_IF_C aBFu7s_BFu8ll_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_BFu33");
    set_bf_and_test(lv, v3, 1, 7, 33, 1, "aBFu7s_BFu8ll_BFu33");
    set_bf_and_test(lv, v3, 1, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu8ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_BFu33, aBFu7s_BFu8ll_BFu33)
//============================================================================



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu8ll_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu8ll_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu8ll_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_BFu9i");
    set_bf_and_test(lv, v3, 1, 7, 9, 1, "aBFu7s_BFu8ll_BFu9i");
    set_bf_and_test(lv, v3, 1, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu8ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_BFu9i, aBFu7s_BFu8ll_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu8ll_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu8ll_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu8ll_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v3, 1, 7, 9, 1, "aBFu7s_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v3, 1, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu8ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_BFu9ll, aBFu7s_BFu8ll_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu8ll_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu8ll_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu8ll_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_BFu9s");
    set_bf_and_test(lv, v3, 1, 7, 9, 1, "aBFu7s_BFu8ll_BFu9s");
    set_bf_and_test(lv, v3, 1, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu8ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_BFu9s, aBFu7s_BFu8ll_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu8ll_C()
{
  {
    init_simple_test("aBFu7s_BFu8ll_C");
    static STRUCT_IF_C aBFu7s_BFu8ll_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_C");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_C");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_C");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_C, aBFu7s_BFu8ll_C)
//============================================================================



static void Test_aBFu7s_BFu8ll_D()
{
  {
    init_simple_test("aBFu7s_BFu8ll_D");
    static STRUCT_IF_C aBFu7s_BFu8ll_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu8ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_D");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_D");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_D");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_D, aBFu7s_BFu8ll_D)
//============================================================================



static void Test_aBFu7s_BFu8ll_F()
{
  {
    init_simple_test("aBFu7s_BFu8ll_F");
    static STRUCT_IF_C aBFu7s_BFu8ll_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_F");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_F");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_F");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_F, aBFu7s_BFu8ll_F)
//============================================================================



static void Test_aBFu7s_BFu8ll_I()
{
  {
    init_simple_test("aBFu7s_BFu8ll_I");
    static STRUCT_IF_C aBFu7s_BFu8ll_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_I");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_I");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_I");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_I, aBFu7s_BFu8ll_I)
//============================================================================



static void Test_aBFu7s_BFu8ll_Ip()
{
  {
    init_simple_test("aBFu7s_BFu8ll_Ip");
    static STRUCT_IF_C aBFu7s_BFu8ll_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_BFu8ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_Ip");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_Ip");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_Ip");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_Ip, aBFu7s_BFu8ll_Ip)
//============================================================================



static void Test_aBFu7s_BFu8ll_L()
{
  {
    init_simple_test("aBFu7s_BFu8ll_L");
    static STRUCT_IF_C aBFu7s_BFu8ll_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu8ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_L");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_L");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_L");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_L, aBFu7s_BFu8ll_L)
//============================================================================



static void Test_aBFu7s_BFu8ll_S()
{
  {
    init_simple_test("aBFu7s_BFu8ll_S");
    static STRUCT_IF_C aBFu7s_BFu8ll_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_S");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_S");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_S");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_S, aBFu7s_BFu8ll_S)
//============================================================================



static void Test_aBFu7s_BFu8ll_Uc()
{
  {
    init_simple_test("aBFu7s_BFu8ll_Uc");
    static STRUCT_IF_C aBFu7s_BFu8ll_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_Uc");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_Uc");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_Uc");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_Uc, aBFu7s_BFu8ll_Uc)
//============================================================================



static void Test_aBFu7s_BFu8ll_Ui()
{
  {
    init_simple_test("aBFu7s_BFu8ll_Ui");
    static STRUCT_IF_C aBFu7s_BFu8ll_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_Ui");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_Ui");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_Ui");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_Ui, aBFu7s_BFu8ll_Ui)
//============================================================================



static void Test_aBFu7s_BFu8ll_Ul()
{
  {
    init_simple_test("aBFu7s_BFu8ll_Ul");
    static STRUCT_IF_C aBFu7s_BFu8ll_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu8ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_Ul");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_Ul");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_Ul");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_Ul, aBFu7s_BFu8ll_Ul)
//============================================================================



static void Test_aBFu7s_BFu8ll_Us()
{
  {
    init_simple_test("aBFu7s_BFu8ll_Us");
    static STRUCT_IF_C aBFu7s_BFu8ll_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_Us");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_Us");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_Us");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_Us, aBFu7s_BFu8ll_Us)
//============================================================================



static void Test_aBFu7s_BFu8ll_Vp()
{
  {
    init_simple_test("aBFu7s_BFu8ll_Vp");
    static STRUCT_IF_C aBFu7s_BFu8ll_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_BFu8ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8ll_Vp");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8ll_Vp");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8ll_Vp");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8ll_Vp, aBFu7s_BFu8ll_Vp)
//============================================================================



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



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



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



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



static void Test_aBFu7s_BFu8s_BFu16i()
{
  {
    init_simple_test("aBFu7s_BFu8s_BFu16i");
    static STRUCT_IF_C aBFu7s_BFu8s_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_BFu16i");
    set_bf_and_test(lv, v3, 1, 7, 16, 1, "aBFu7s_BFu8s_BFu16i");
    set_bf_and_test(lv, v3, 1, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu8s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_BFu16i, aBFu7s_BFu8s_BFu16i)
//============================================================================



static void Test_aBFu7s_BFu8s_BFu16ll()
{
  {
    init_simple_test("aBFu7s_BFu8s_BFu16ll");
    static STRUCT_IF_C aBFu7s_BFu8s_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_BFu16ll");
    set_bf_and_test(lv, v3, 1, 7, 16, 1, "aBFu7s_BFu8s_BFu16ll");
    set_bf_and_test(lv, v3, 1, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu8s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_BFu16ll, aBFu7s_BFu8s_BFu16ll)
//============================================================================



static void Test_aBFu7s_BFu8s_BFu16s()
{
  {
    init_simple_test("aBFu7s_BFu8s_BFu16s");
    static STRUCT_IF_C aBFu7s_BFu8s_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_BFu16s");
    set_bf_and_test(lv, v3, 1, 7, 16, 1, "aBFu7s_BFu8s_BFu16s");
    set_bf_and_test(lv, v3, 1, 7, 16, hide_ull(1LL<<15), "aBFu7s_BFu8s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_BFu16s, aBFu7s_BFu8s_BFu16s)
//============================================================================



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu8s_BFu32i()
{
  {
    init_simple_test("aBFu7s_BFu8s_BFu32i");
    static STRUCT_IF_C aBFu7s_BFu8s_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_BFu32i");
    set_bf_and_test(lv, v3, 1, 7, 32, 1, "aBFu7s_BFu8s_BFu32i");
    set_bf_and_test(lv, v3, 1, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu8s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_BFu32i, aBFu7s_BFu8s_BFu32i)
//============================================================================



static void Test_aBFu7s_BFu8s_BFu32ll()
{
  {
    init_simple_test("aBFu7s_BFu8s_BFu32ll");
    static STRUCT_IF_C aBFu7s_BFu8s_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_BFu32ll");
    set_bf_and_test(lv, v3, 1, 7, 32, 1, "aBFu7s_BFu8s_BFu32ll");
    set_bf_and_test(lv, v3, 1, 7, 32, hide_ull(1LL<<31), "aBFu7s_BFu8s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_BFu32ll, aBFu7s_BFu8s_BFu32ll)
//============================================================================



static void Test_aBFu7s_BFu8s_BFu33()
{
  {
    init_simple_test("aBFu7s_BFu8s_BFu33");
    static STRUCT_IF_C aBFu7s_BFu8s_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_BFu33");
    set_bf_and_test(lv, v3, 1, 7, 33, 1, "aBFu7s_BFu8s_BFu33");
    set_bf_and_test(lv, v3, 1, 7, 33, hide_ull(1LL<<32), "aBFu7s_BFu8s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_BFu33, aBFu7s_BFu8s_BFu33)
//============================================================================



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



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



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



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



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



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



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



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



static void Test_aBFu7s_BFu8s_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu8s_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu8s_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_BFu9i");
    set_bf_and_test(lv, v3, 1, 7, 9, 1, "aBFu7s_BFu8s_BFu9i");
    set_bf_and_test(lv, v3, 1, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu8s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_BFu9i, aBFu7s_BFu8s_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu8s_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu8s_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu8s_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_BFu9ll");
    set_bf_and_test(lv, v3, 1, 7, 9, 1, "aBFu7s_BFu8s_BFu9ll");
    set_bf_and_test(lv, v3, 1, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu8s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_BFu9ll, aBFu7s_BFu8s_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu8s_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu8s_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu8s_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_BFu9s");
    set_bf_and_test(lv, v3, 1, 7, 9, 1, "aBFu7s_BFu8s_BFu9s");
    set_bf_and_test(lv, v3, 1, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu8s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_BFu9s, aBFu7s_BFu8s_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu8s_C()
{
  {
    init_simple_test("aBFu7s_BFu8s_C");
    static STRUCT_IF_C aBFu7s_BFu8s_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_C");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_C");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_C");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_C, aBFu7s_BFu8s_C)
//============================================================================



static void Test_aBFu7s_BFu8s_D()
{
  {
    init_simple_test("aBFu7s_BFu8s_D");
    static STRUCT_IF_C aBFu7s_BFu8s_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu8s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_D");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_D");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_D");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_D, aBFu7s_BFu8s_D)
//============================================================================



static void Test_aBFu7s_BFu8s_F()
{
  {
    init_simple_test("aBFu7s_BFu8s_F");
    static STRUCT_IF_C aBFu7s_BFu8s_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_F");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_F");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_F");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_F, aBFu7s_BFu8s_F)
//============================================================================



static void Test_aBFu7s_BFu8s_I()
{
  {
    init_simple_test("aBFu7s_BFu8s_I");
    static STRUCT_IF_C aBFu7s_BFu8s_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_I");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_I");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_I");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_I, aBFu7s_BFu8s_I)
//============================================================================



static void Test_aBFu7s_BFu8s_Ip()
{
  {
    init_simple_test("aBFu7s_BFu8s_Ip");
    static STRUCT_IF_C aBFu7s_BFu8s_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_BFu8s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_Ip");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_Ip");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_Ip");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_Ip, aBFu7s_BFu8s_Ip)
//============================================================================



static void Test_aBFu7s_BFu8s_L()
{
  {
    init_simple_test("aBFu7s_BFu8s_L");
    static STRUCT_IF_C aBFu7s_BFu8s_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu8s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_L");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_L");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_L");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_L, aBFu7s_BFu8s_L)
//============================================================================



static void Test_aBFu7s_BFu8s_S()
{
  {
    init_simple_test("aBFu7s_BFu8s_S");
    static STRUCT_IF_C aBFu7s_BFu8s_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_S");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_S");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_S");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_S, aBFu7s_BFu8s_S)
//============================================================================



static void Test_aBFu7s_BFu8s_Uc()
{
  {
    init_simple_test("aBFu7s_BFu8s_Uc");
    static STRUCT_IF_C aBFu7s_BFu8s_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu8s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_Uc");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_Uc");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_Uc");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_Uc, aBFu7s_BFu8s_Uc)
//============================================================================



static void Test_aBFu7s_BFu8s_Ui()
{
  {
    init_simple_test("aBFu7s_BFu8s_Ui");
    static STRUCT_IF_C aBFu7s_BFu8s_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu8s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_Ui");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_Ui");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_Ui");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_Ui, aBFu7s_BFu8s_Ui)
//============================================================================



static void Test_aBFu7s_BFu8s_Ul()
{
  {
    init_simple_test("aBFu7s_BFu8s_Ul");
    static STRUCT_IF_C aBFu7s_BFu8s_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu8s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_Ul");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_Ul");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_Ul");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_Ul, aBFu7s_BFu8s_Ul)
//============================================================================



static void Test_aBFu7s_BFu8s_Us()
{
  {
    init_simple_test("aBFu7s_BFu8s_Us");
    static STRUCT_IF_C aBFu7s_BFu8s_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu8s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_Us");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_Us");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_Us");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_Us, aBFu7s_BFu8s_Us)
//============================================================================



static void Test_aBFu7s_BFu8s_Vp()
{
  {
    init_simple_test("aBFu7s_BFu8s_Vp");
    static STRUCT_IF_C aBFu7s_BFu8s_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_BFu8s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu8s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu8s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu8s_Vp");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu7s_BFu8s_Vp");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu7s_BFu8s_Vp");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu8s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu8s_Vp, aBFu7s_BFu8s_Vp)
//============================================================================



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



static void Test_aBFu7s_BFu9i_BFu15i()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu15i");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7s_BFu9i_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7s_BFu9i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu15i, aBFu7s_BFu9i_BFu15i)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu15ll()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu15ll");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7s_BFu9i_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7s_BFu9i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu15ll, aBFu7s_BFu9i_BFu15ll)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu15s()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu15s");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7s_BFu9i_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7s_BFu9i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu15s, aBFu7s_BFu9i_BFu15s)
//============================================================================



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



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



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



static void Test_aBFu7s_BFu9i_BFu17i()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu17i");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu9i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7s_BFu9i_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7s_BFu9i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu17i, aBFu7s_BFu9i_BFu17i)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu17ll()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu17ll");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu9i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7s_BFu9i_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7s_BFu9i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu17ll, aBFu7s_BFu9i_BFu17ll)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu1c()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu1c");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu1c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu1c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu1c");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_BFu9i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu1c, aBFu7s_BFu9i_BFu1c)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu1i()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu1i");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu1i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu1i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu1i");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_BFu9i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu1i, aBFu7s_BFu9i_BFu1i)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu1ll()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu1ll");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu1ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu1ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu1ll");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_BFu9i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu1ll, aBFu7s_BFu9i_BFu1ll)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu1s()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu1s");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu1s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu1s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu1s");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_BFu9i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu1s, aBFu7s_BFu9i_BFu1s)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu31i()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu31i");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7s_BFu9i_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7s_BFu9i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu31i, aBFu7s_BFu9i_BFu31i)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu31ll()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu31ll");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7s_BFu9i_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7s_BFu9i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu31ll, aBFu7s_BFu9i_BFu31ll)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu32i()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu32i");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7s_BFu9i_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7s_BFu9i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu32i, aBFu7s_BFu9i_BFu32i)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu32ll()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu32ll");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7s_BFu9i_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7s_BFu9i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu32ll, aBFu7s_BFu9i_BFu32ll)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu33()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu33");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu9i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, 1, "aBFu7s_BFu9i_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, hide_ull(1LL<<32), "aBFu7s_BFu9i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu33, aBFu7s_BFu9i_BFu33)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_BFu9i_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu7c, aBFu7s_BFu9i_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_BFu9i_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu7i, aBFu7s_BFu9i_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_BFu9i_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu7ll, aBFu7s_BFu9i_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_BFu9i_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu7s, aBFu7s_BFu9i_BFu7s)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu8c()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu8c");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_BFu9i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu9i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu8c, aBFu7s_BFu9i_BFu8c)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu8i()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu8i");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_BFu9i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu9i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu8i, aBFu7s_BFu9i_BFu8i)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu8ll()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu8ll");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_BFu9i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu9i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu8ll, aBFu7s_BFu9i_BFu8ll)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu8s()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu8s");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_BFu9i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu9i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu8s, aBFu7s_BFu9i_BFu8s)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7s_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu9i, aBFu7s_BFu9i_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu9ll, aBFu7s_BFu9i_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu9i_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu9i_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu9i_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7s_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_BFu9s, aBFu7s_BFu9i_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu9i_C()
{
  {
    init_simple_test("aBFu7s_BFu9i_C");
    static STRUCT_IF_C aBFu7s_BFu9i_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_C");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_C");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_C");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_C, aBFu7s_BFu9i_C)
//============================================================================



static void Test_aBFu7s_BFu9i_D()
{
  {
    init_simple_test("aBFu7s_BFu9i_D");
    static STRUCT_IF_C aBFu7s_BFu9i_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu9i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_D");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_D");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_D");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_D, aBFu7s_BFu9i_D)
//============================================================================



static void Test_aBFu7s_BFu9i_F()
{
  {
    init_simple_test("aBFu7s_BFu9i_F");
    static STRUCT_IF_C aBFu7s_BFu9i_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_F");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_F");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_F");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_F, aBFu7s_BFu9i_F)
//============================================================================



static void Test_aBFu7s_BFu9i_I()
{
  {
    init_simple_test("aBFu7s_BFu9i_I");
    static STRUCT_IF_C aBFu7s_BFu9i_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_I");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_I");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_I");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_I, aBFu7s_BFu9i_I)
//============================================================================



static void Test_aBFu7s_BFu9i_Ip()
{
  {
    init_simple_test("aBFu7s_BFu9i_Ip");
    static STRUCT_IF_C aBFu7s_BFu9i_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_BFu9i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_Ip");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_Ip");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_Ip");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_Ip, aBFu7s_BFu9i_Ip)
//============================================================================



static void Test_aBFu7s_BFu9i_L()
{
  {
    init_simple_test("aBFu7s_BFu9i_L");
    static STRUCT_IF_C aBFu7s_BFu9i_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu9i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_L");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_L");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_L");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_L, aBFu7s_BFu9i_L)
//============================================================================



static void Test_aBFu7s_BFu9i_S()
{
  {
    init_simple_test("aBFu7s_BFu9i_S");
    static STRUCT_IF_C aBFu7s_BFu9i_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_S");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_S");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_S");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_S, aBFu7s_BFu9i_S)
//============================================================================



static void Test_aBFu7s_BFu9i_Uc()
{
  {
    init_simple_test("aBFu7s_BFu9i_Uc");
    static STRUCT_IF_C aBFu7s_BFu9i_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_Uc");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_Uc");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_Uc");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_Uc, aBFu7s_BFu9i_Uc)
//============================================================================



static void Test_aBFu7s_BFu9i_Ui()
{
  {
    init_simple_test("aBFu7s_BFu9i_Ui");
    static STRUCT_IF_C aBFu7s_BFu9i_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_Ui");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_Ui");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_Ui");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_Ui, aBFu7s_BFu9i_Ui)
//============================================================================



static void Test_aBFu7s_BFu9i_Ul()
{
  {
    init_simple_test("aBFu7s_BFu9i_Ul");
    static STRUCT_IF_C aBFu7s_BFu9i_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu9i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_Ul");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_Ul");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_Ul");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_Ul, aBFu7s_BFu9i_Ul)
//============================================================================



static void Test_aBFu7s_BFu9i_Us()
{
  {
    init_simple_test("aBFu7s_BFu9i_Us");
    static STRUCT_IF_C aBFu7s_BFu9i_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_Us");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_Us");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_Us");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_Us, aBFu7s_BFu9i_Us)
//============================================================================



static void Test_aBFu7s_BFu9i_Vp()
{
  {
    init_simple_test("aBFu7s_BFu9i_Vp");
    static STRUCT_IF_C aBFu7s_BFu9i_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_BFu9i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9i_Vp");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9i_Vp");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9i_Vp");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9i_Vp, aBFu7s_BFu9i_Vp)
//============================================================================



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



static void Test_aBFu7s_BFu9ll_BFu15i()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu15i");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7s_BFu9ll_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7s_BFu9ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu15i, aBFu7s_BFu9ll_BFu15i)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu15ll()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu15ll");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7s_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7s_BFu9ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu15ll, aBFu7s_BFu9ll_BFu15ll)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu15s()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu15s");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7s_BFu9ll_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7s_BFu9ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu15s, aBFu7s_BFu9ll_BFu15s)
//============================================================================



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



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



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



static void Test_aBFu7s_BFu9ll_BFu17i()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu17i");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu9ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7s_BFu9ll_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7s_BFu9ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu17i, aBFu7s_BFu9ll_BFu17i)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu17ll()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu17ll");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu9ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7s_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7s_BFu9ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu17ll, aBFu7s_BFu9ll_BFu17ll)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu1c()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu1c");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu1c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu1c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu1c");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_BFu9ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu1c, aBFu7s_BFu9ll_BFu1c)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu1i()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu1i");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu1i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu1i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu1i");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_BFu9ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu1i, aBFu7s_BFu9ll_BFu1i)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu1ll()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu1ll");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_BFu9ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu1ll, aBFu7s_BFu9ll_BFu1ll)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu1s()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu1s");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu1s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu1s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu1s");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_BFu9ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu1s, aBFu7s_BFu9ll_BFu1s)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu31i()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu31i");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7s_BFu9ll_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7s_BFu9ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu31i, aBFu7s_BFu9ll_BFu31i)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu31ll()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu31ll");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7s_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7s_BFu9ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu31ll, aBFu7s_BFu9ll_BFu31ll)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu32i()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu32i");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7s_BFu9ll_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7s_BFu9ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu32i, aBFu7s_BFu9ll_BFu32i)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu32ll()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu32ll");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7s_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7s_BFu9ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu32ll, aBFu7s_BFu9ll_BFu32ll)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu33()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu33");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu9ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, 1, "aBFu7s_BFu9ll_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, hide_ull(1LL<<32), "aBFu7s_BFu9ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu33, aBFu7s_BFu9ll_BFu33)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_BFu9ll_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu7c, aBFu7s_BFu9ll_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_BFu9ll_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu7i, aBFu7s_BFu9ll_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu7ll, aBFu7s_BFu9ll_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_BFu9ll_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu7s, aBFu7s_BFu9ll_BFu7s)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu8c()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu8c");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_BFu9ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu9ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu8c, aBFu7s_BFu9ll_BFu8c)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu8i()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu8i");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_BFu9ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu9ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu8i, aBFu7s_BFu9ll_BFu8i)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu8ll()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu8ll");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu9ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu8ll, aBFu7s_BFu9ll_BFu8ll)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu8s()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu8s");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_BFu9ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu9ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu8s, aBFu7s_BFu9ll_BFu8s)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu9i, aBFu7s_BFu9ll_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu9ll, aBFu7s_BFu9ll_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu9ll_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu9ll_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu9ll_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_BFu9s, aBFu7s_BFu9ll_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu9ll_C()
{
  {
    init_simple_test("aBFu7s_BFu9ll_C");
    static STRUCT_IF_C aBFu7s_BFu9ll_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_C");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_C");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_C");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_C, aBFu7s_BFu9ll_C)
//============================================================================



static void Test_aBFu7s_BFu9ll_D()
{
  {
    init_simple_test("aBFu7s_BFu9ll_D");
    static STRUCT_IF_C aBFu7s_BFu9ll_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu9ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_D");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_D");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_D");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_D, aBFu7s_BFu9ll_D)
//============================================================================



static void Test_aBFu7s_BFu9ll_F()
{
  {
    init_simple_test("aBFu7s_BFu9ll_F");
    static STRUCT_IF_C aBFu7s_BFu9ll_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_F");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_F");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_F");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_F, aBFu7s_BFu9ll_F)
//============================================================================



static void Test_aBFu7s_BFu9ll_I()
{
  {
    init_simple_test("aBFu7s_BFu9ll_I");
    static STRUCT_IF_C aBFu7s_BFu9ll_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_I");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_I");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_I");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_I, aBFu7s_BFu9ll_I)
//============================================================================



static void Test_aBFu7s_BFu9ll_Ip()
{
  {
    init_simple_test("aBFu7s_BFu9ll_Ip");
    static STRUCT_IF_C aBFu7s_BFu9ll_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_BFu9ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_Ip");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_Ip");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_Ip");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_Ip, aBFu7s_BFu9ll_Ip)
//============================================================================



static void Test_aBFu7s_BFu9ll_L()
{
  {
    init_simple_test("aBFu7s_BFu9ll_L");
    static STRUCT_IF_C aBFu7s_BFu9ll_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu9ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_L");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_L");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_L");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_L, aBFu7s_BFu9ll_L)
//============================================================================



static void Test_aBFu7s_BFu9ll_S()
{
  {
    init_simple_test("aBFu7s_BFu9ll_S");
    static STRUCT_IF_C aBFu7s_BFu9ll_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_S");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_S");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_S");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_S, aBFu7s_BFu9ll_S)
//============================================================================



static void Test_aBFu7s_BFu9ll_Uc()
{
  {
    init_simple_test("aBFu7s_BFu9ll_Uc");
    static STRUCT_IF_C aBFu7s_BFu9ll_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_Uc");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_Uc");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_Uc");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_Uc, aBFu7s_BFu9ll_Uc)
//============================================================================



static void Test_aBFu7s_BFu9ll_Ui()
{
  {
    init_simple_test("aBFu7s_BFu9ll_Ui");
    static STRUCT_IF_C aBFu7s_BFu9ll_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_Ui");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_Ui");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_Ui");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_Ui, aBFu7s_BFu9ll_Ui)
//============================================================================



static void Test_aBFu7s_BFu9ll_Ul()
{
  {
    init_simple_test("aBFu7s_BFu9ll_Ul");
    static STRUCT_IF_C aBFu7s_BFu9ll_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu9ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_Ul");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_Ul");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_Ul");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_Ul, aBFu7s_BFu9ll_Ul)
//============================================================================



static void Test_aBFu7s_BFu9ll_Us()
{
  {
    init_simple_test("aBFu7s_BFu9ll_Us");
    static STRUCT_IF_C aBFu7s_BFu9ll_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_Us");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_Us");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_Us");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_Us, aBFu7s_BFu9ll_Us)
//============================================================================



static void Test_aBFu7s_BFu9ll_Vp()
{
  {
    init_simple_test("aBFu7s_BFu9ll_Vp");
    static STRUCT_IF_C aBFu7s_BFu9ll_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_BFu9ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9ll_Vp");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9ll_Vp");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9ll_Vp");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9ll_Vp, aBFu7s_BFu9ll_Vp)
//============================================================================



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



static void Test_aBFu7s_BFu9s_BFu15i()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu15i");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7s_BFu9s_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7s_BFu9s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu15i, aBFu7s_BFu9s_BFu15i)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu15ll()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu15ll");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7s_BFu9s_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7s_BFu9s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu15ll, aBFu7s_BFu9s_BFu15ll)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu15s()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu15s");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "aBFu7s_BFu9s_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "aBFu7s_BFu9s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu15s, aBFu7s_BFu9s_BFu15s)
//============================================================================



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



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



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



static void Test_aBFu7s_BFu9s_BFu17i()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu17i");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu9s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7s_BFu9s_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7s_BFu9s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu17i, aBFu7s_BFu9s_BFu17i)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu17ll()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu17ll");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_BFu9s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7s_BFu9s_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7s_BFu9s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu17ll, aBFu7s_BFu9s_BFu17ll)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu1c()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu1c");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu1c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu1c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu1c");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_BFu9s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu1c, aBFu7s_BFu9s_BFu1c)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu1i()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu1i");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu1i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu1i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu1i");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_BFu9s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu1i, aBFu7s_BFu9s_BFu1i)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu1ll()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu1ll");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu1ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu1ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu1ll");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_BFu9s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu1ll, aBFu7s_BFu9s_BFu1ll)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu1s()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu1s");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu1s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu1s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu1s");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_BFu9s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu1s, aBFu7s_BFu9s_BFu1s)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu31i()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu31i");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7s_BFu9s_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7s_BFu9s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu31i, aBFu7s_BFu9s_BFu31i)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu31ll()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu31ll");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7s_BFu9s_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7s_BFu9s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu31ll, aBFu7s_BFu9s_BFu31ll)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu32i()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu32i");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7s_BFu9s_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7s_BFu9s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu32i, aBFu7s_BFu9s_BFu32i)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu32ll()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu32ll");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7s_BFu9s_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7s_BFu9s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu32ll, aBFu7s_BFu9s_BFu32ll)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu33()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu33");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_BFu9s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, 1, "aBFu7s_BFu9s_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, hide_ull(1LL<<32), "aBFu7s_BFu9s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu33, aBFu7s_BFu9s_BFu33)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu7c()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu7c");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_BFu9s_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu7c, aBFu7s_BFu9s_BFu7c)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu7i()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu7i");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_BFu9s_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu7i, aBFu7s_BFu9s_BFu7i)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu7ll()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu7ll");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_BFu9s_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu7ll, aBFu7s_BFu9s_BFu7ll)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu7s()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu7s");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_BFu9s_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu7s, aBFu7s_BFu9s_BFu7s)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu8c()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu8c");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_BFu9s_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu9s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu8c, aBFu7s_BFu9s_BFu8c)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu8i()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu8i");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_BFu9s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu9s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu8i, aBFu7s_BFu9s_BFu8i)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu8ll()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu8ll");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_BFu9s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu9s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu8ll, aBFu7s_BFu9s_BFu8ll)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu8s()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu8s");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_BFu9s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_BFu9s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu8s, aBFu7s_BFu9s_BFu8s)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu9i()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu9i");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7s_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu9i, aBFu7s_BFu9s_BFu9i)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu9ll()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu9ll");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu9ll, aBFu7s_BFu9s_BFu9ll)
//============================================================================



static void Test_aBFu7s_BFu9s_BFu9s()
{
  {
    init_simple_test("aBFu7s_BFu9s_BFu9s");
    static STRUCT_IF_C aBFu7s_BFu9s_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7s_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_BFu9s, aBFu7s_BFu9s_BFu9s)
//============================================================================



static void Test_aBFu7s_BFu9s_C()
{
  {
    init_simple_test("aBFu7s_BFu9s_C");
    static STRUCT_IF_C aBFu7s_BFu9s_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_C");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_C");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_C");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_C, aBFu7s_BFu9s_C)
//============================================================================



static void Test_aBFu7s_BFu9s_D()
{
  {
    init_simple_test("aBFu7s_BFu9s_D");
    static STRUCT_IF_C aBFu7s_BFu9s_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu9s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_D");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_D");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_D");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_D, aBFu7s_BFu9s_D)
//============================================================================



static void Test_aBFu7s_BFu9s_F()
{
  {
    init_simple_test("aBFu7s_BFu9s_F");
    static STRUCT_IF_C aBFu7s_BFu9s_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_F");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_F");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_F");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_F, aBFu7s_BFu9s_F)
//============================================================================



static void Test_aBFu7s_BFu9s_I()
{
  {
    init_simple_test("aBFu7s_BFu9s_I");
    static STRUCT_IF_C aBFu7s_BFu9s_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_I");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_I");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_I");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_I, aBFu7s_BFu9s_I)
//============================================================================



static void Test_aBFu7s_BFu9s_Ip()
{
  {
    init_simple_test("aBFu7s_BFu9s_Ip");
    static STRUCT_IF_C aBFu7s_BFu9s_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_BFu9s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_Ip");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_Ip");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_Ip");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_Ip, aBFu7s_BFu9s_Ip)
//============================================================================



static void Test_aBFu7s_BFu9s_L()
{
  {
    init_simple_test("aBFu7s_BFu9s_L");
    static STRUCT_IF_C aBFu7s_BFu9s_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu9s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_L");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_L");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_L");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_L, aBFu7s_BFu9s_L)
//============================================================================



static void Test_aBFu7s_BFu9s_S()
{
  {
    init_simple_test("aBFu7s_BFu9s_S");
    static STRUCT_IF_C aBFu7s_BFu9s_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_S");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_S");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_S");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_S, aBFu7s_BFu9s_S)
//============================================================================



static void Test_aBFu7s_BFu9s_Uc()
{
  {
    init_simple_test("aBFu7s_BFu9s_Uc");
    static STRUCT_IF_C aBFu7s_BFu9s_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_BFu9s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_Uc");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_Uc");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_Uc");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_Uc, aBFu7s_BFu9s_Uc)
//============================================================================



static void Test_aBFu7s_BFu9s_Ui()
{
  {
    init_simple_test("aBFu7s_BFu9s_Ui");
    static STRUCT_IF_C aBFu7s_BFu9s_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_BFu9s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_Ui");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_Ui");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_Ui");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_Ui, aBFu7s_BFu9s_Ui)
//============================================================================



static void Test_aBFu7s_BFu9s_Ul()
{
  {
    init_simple_test("aBFu7s_BFu9s_Ul");
    static STRUCT_IF_C aBFu7s_BFu9s_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_BFu9s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_Ul");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_Ul");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_Ul");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_Ul, aBFu7s_BFu9s_Ul)
//============================================================================



static void Test_aBFu7s_BFu9s_Us()
{
  {
    init_simple_test("aBFu7s_BFu9s_Us");
    static STRUCT_IF_C aBFu7s_BFu9s_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_BFu9s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_Us");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_Us");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_Us");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_Us, aBFu7s_BFu9s_Us)
//============================================================================



static void Test_aBFu7s_BFu9s_Vp()
{
  {
    init_simple_test("aBFu7s_BFu9s_Vp");
    static STRUCT_IF_C aBFu7s_BFu9s_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_BFu9s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_BFu9s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_BFu9s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_BFu9s_Vp");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu7s_BFu9s_Vp");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu7s_BFu9s_Vp");
    check_field_offset(lv, v3, 2, "aBFu7s_BFu9s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_BFu9s_Vp, aBFu7s_BFu9s_Vp)
//============================================================================



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



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



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



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



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



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



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



static void Test_aBFu7s_C_BFu17i()
{
  {
    init_simple_test("aBFu7s_C_BFu17i");
    static STRUCT_IF_C aBFu7s_C_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_C_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu17i.v2");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7s_C_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7s_C_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu17i, aBFu7s_C_BFu17i)
//============================================================================



static void Test_aBFu7s_C_BFu17ll()
{
  {
    init_simple_test("aBFu7s_C_BFu17ll");
    static STRUCT_IF_C aBFu7s_C_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_C_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu17ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7s_C_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7s_C_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu17ll, aBFu7s_C_BFu17ll)
//============================================================================



static void Test_aBFu7s_C_BFu1c()
{
  {
    init_simple_test("aBFu7s_C_BFu1c");
    static STRUCT_IF_C aBFu7s_C_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_C_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu1c.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_C_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu1c, aBFu7s_C_BFu1c)
//============================================================================



static void Test_aBFu7s_C_BFu1i()
{
  {
    init_simple_test("aBFu7s_C_BFu1i");
    static STRUCT_IF_C aBFu7s_C_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_C_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu1i.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_C_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu1i, aBFu7s_C_BFu1i)
//============================================================================



static void Test_aBFu7s_C_BFu1ll()
{
  {
    init_simple_test("aBFu7s_C_BFu1ll");
    static STRUCT_IF_C aBFu7s_C_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_C_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu1ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_C_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu1ll, aBFu7s_C_BFu1ll)
//============================================================================



static void Test_aBFu7s_C_BFu1s()
{
  {
    init_simple_test("aBFu7s_C_BFu1s");
    static STRUCT_IF_C aBFu7s_C_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_C_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu1s.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_C_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu1s, aBFu7s_C_BFu1s)
//============================================================================



static void Test_aBFu7s_C_BFu31i()
{
  {
    init_simple_test("aBFu7s_C_BFu31i");
    static STRUCT_IF_C aBFu7s_C_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_C_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu31i.v2");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7s_C_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7s_C_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu31i, aBFu7s_C_BFu31i)
//============================================================================



static void Test_aBFu7s_C_BFu31ll()
{
  {
    init_simple_test("aBFu7s_C_BFu31ll");
    static STRUCT_IF_C aBFu7s_C_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_C_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu31ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7s_C_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7s_C_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu31ll, aBFu7s_C_BFu31ll)
//============================================================================



static void Test_aBFu7s_C_BFu32i()
{
  {
    init_simple_test("aBFu7s_C_BFu32i");
    static STRUCT_IF_C aBFu7s_C_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_C_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu32i.v2");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7s_C_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7s_C_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu32i, aBFu7s_C_BFu32i)
//============================================================================



static void Test_aBFu7s_C_BFu32ll()
{
  {
    init_simple_test("aBFu7s_C_BFu32ll");
    static STRUCT_IF_C aBFu7s_C_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_C_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu32ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7s_C_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7s_C_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu32ll, aBFu7s_C_BFu32ll)
//============================================================================



static void Test_aBFu7s_C_BFu33()
{
  {
    init_simple_test("aBFu7s_C_BFu33");
    static STRUCT_IF_C aBFu7s_C_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_C_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu33.v2");
    set_bf_and_test(lv, v3, 2, 0, 33, 1, "aBFu7s_C_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, hide_ull(1LL<<32), "aBFu7s_C_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu33, aBFu7s_C_BFu33)
//============================================================================



static void Test_aBFu7s_C_BFu7c()
{
  {
    init_simple_test("aBFu7s_C_BFu7c");
    static STRUCT_IF_C aBFu7s_C_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_C_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu7c.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_C_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu7c, aBFu7s_C_BFu7c)
//============================================================================



static void Test_aBFu7s_C_BFu7i()
{
  {
    init_simple_test("aBFu7s_C_BFu7i");
    static STRUCT_IF_C aBFu7s_C_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_C_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu7i.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_C_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu7i, aBFu7s_C_BFu7i)
//============================================================================



static void Test_aBFu7s_C_BFu7ll()
{
  {
    init_simple_test("aBFu7s_C_BFu7ll");
    static STRUCT_IF_C aBFu7s_C_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_C_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu7ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_C_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu7ll, aBFu7s_C_BFu7ll)
//============================================================================



static void Test_aBFu7s_C_BFu7s()
{
  {
    init_simple_test("aBFu7s_C_BFu7s");
    static STRUCT_IF_C aBFu7s_C_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_C_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu7s.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_C_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu7s, aBFu7s_C_BFu7s)
//============================================================================



static void Test_aBFu7s_C_BFu8c()
{
  {
    init_simple_test("aBFu7s_C_BFu8c");
    static STRUCT_IF_C aBFu7s_C_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_C_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu8c.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_C_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_C_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu8c, aBFu7s_C_BFu8c)
//============================================================================



static void Test_aBFu7s_C_BFu8i()
{
  {
    init_simple_test("aBFu7s_C_BFu8i");
    static STRUCT_IF_C aBFu7s_C_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_C_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu8i.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_C_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_C_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu8i, aBFu7s_C_BFu8i)
//============================================================================



static void Test_aBFu7s_C_BFu8ll()
{
  {
    init_simple_test("aBFu7s_C_BFu8ll");
    static STRUCT_IF_C aBFu7s_C_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_C_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu8ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_C_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_C_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu8ll, aBFu7s_C_BFu8ll)
//============================================================================



static void Test_aBFu7s_C_BFu8s()
{
  {
    init_simple_test("aBFu7s_C_BFu8s");
    static STRUCT_IF_C aBFu7s_C_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_C_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu8s.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_C_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_C_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu8s, aBFu7s_C_BFu8s)
//============================================================================



static void Test_aBFu7s_C_BFu9i()
{
  {
    init_simple_test("aBFu7s_C_BFu9i");
    static STRUCT_IF_C aBFu7s_C_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_C_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu9i.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7s_C_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7s_C_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu9i, aBFu7s_C_BFu9i)
//============================================================================



static void Test_aBFu7s_C_BFu9ll()
{
  {
    init_simple_test("aBFu7s_C_BFu9ll");
    static STRUCT_IF_C aBFu7s_C_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_C_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu9ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7s_C_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7s_C_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu9ll, aBFu7s_C_BFu9ll)
//============================================================================



static void Test_aBFu7s_C_BFu9s()
{
  {
    init_simple_test("aBFu7s_C_BFu9s");
    static STRUCT_IF_C aBFu7s_C_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_C_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7s_C_BFu9s.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7s_C_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7s_C_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_BFu9s, aBFu7s_C_BFu9s)
//============================================================================



static void Test_aBFu7s_C_C()
{
  {
    init_simple_test("aBFu7s_C_C");
    static STRUCT_IF_C aBFu7s_C_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_C_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_C");
    check_field_offset(lv, v2, 1, "aBFu7s_C_C.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_C_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_C, aBFu7s_C_C)
//============================================================================



static void Test_aBFu7s_C_D()
{
  {
    init_simple_test("aBFu7s_C_D");
    static STRUCT_IF_C aBFu7s_C_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_C_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_D");
    check_field_offset(lv, v2, 1, "aBFu7s_C_D.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_C_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_D, aBFu7s_C_D)
//============================================================================



static void Test_aBFu7s_C_F()
{
  {
    init_simple_test("aBFu7s_C_F");
    static STRUCT_IF_C aBFu7s_C_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_C_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_F");
    check_field_offset(lv, v2, 1, "aBFu7s_C_F.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_C_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_F, aBFu7s_C_F)
//============================================================================



static void Test_aBFu7s_C_I()
{
  {
    init_simple_test("aBFu7s_C_I");
    static STRUCT_IF_C aBFu7s_C_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_C_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_I");
    check_field_offset(lv, v2, 1, "aBFu7s_C_I.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_C_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_I, aBFu7s_C_I)
//============================================================================



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



static void Test_aBFu7s_C_L()
{
  {
    init_simple_test("aBFu7s_C_L");
    static STRUCT_IF_C aBFu7s_C_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_C_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_L");
    check_field_offset(lv, v2, 1, "aBFu7s_C_L.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_C_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_L, aBFu7s_C_L)
//============================================================================



static void Test_aBFu7s_C_S()
{
  {
    init_simple_test("aBFu7s_C_S");
    static STRUCT_IF_C aBFu7s_C_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_C_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_S");
    check_field_offset(lv, v2, 1, "aBFu7s_C_S.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_C_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_S, aBFu7s_C_S)
//============================================================================



static void Test_aBFu7s_C_Uc()
{
  {
    init_simple_test("aBFu7s_C_Uc");
    static STRUCT_IF_C aBFu7s_C_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_C_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_Uc");
    check_field_offset(lv, v2, 1, "aBFu7s_C_Uc.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_C_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_Uc, aBFu7s_C_Uc)
//============================================================================



static void Test_aBFu7s_C_Ui()
{
  {
    init_simple_test("aBFu7s_C_Ui");
    static STRUCT_IF_C aBFu7s_C_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_C_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_Ui");
    check_field_offset(lv, v2, 1, "aBFu7s_C_Ui.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_C_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_Ui, aBFu7s_C_Ui)
//============================================================================



static void Test_aBFu7s_C_Ul()
{
  {
    init_simple_test("aBFu7s_C_Ul");
    static STRUCT_IF_C aBFu7s_C_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_C_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_Ul");
    check_field_offset(lv, v2, 1, "aBFu7s_C_Ul.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_C_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_Ul, aBFu7s_C_Ul)
//============================================================================



static void Test_aBFu7s_C_Us()
{
  {
    init_simple_test("aBFu7s_C_Us");
    static STRUCT_IF_C aBFu7s_C_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_C_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_C_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_C_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_C_Us");
    check_field_offset(lv, v2, 1, "aBFu7s_C_Us.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_C_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_C_Us, aBFu7s_C_Us)
//============================================================================



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



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



static void Test_aBFu7s_D_BFu15i()
{
  {
    init_simple_test("aBFu7s_D_BFu15i");
    static STRUCT_IF_C aBFu7s_D_BFu15i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_D_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu15i.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7s_D_BFu15i");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7s_D_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu15i, aBFu7s_D_BFu15i)
//============================================================================



static void Test_aBFu7s_D_BFu15ll()
{
  {
    init_simple_test("aBFu7s_D_BFu15ll");
    static STRUCT_IF_C aBFu7s_D_BFu15ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_D_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu15ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7s_D_BFu15ll");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7s_D_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu15ll, aBFu7s_D_BFu15ll)
//============================================================================



static void Test_aBFu7s_D_BFu15s()
{
  {
    init_simple_test("aBFu7s_D_BFu15s");
    static STRUCT_IF_C aBFu7s_D_BFu15s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_D_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu15s.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7s_D_BFu15s");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7s_D_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu15s, aBFu7s_D_BFu15s)
//============================================================================



static void Test_aBFu7s_D_BFu16i()
{
  {
    init_simple_test("aBFu7s_D_BFu16i");
    static STRUCT_IF_C aBFu7s_D_BFu16i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_D_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu16i.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7s_D_BFu16i");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7s_D_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu16i, aBFu7s_D_BFu16i)
//============================================================================



static void Test_aBFu7s_D_BFu16ll()
{
  {
    init_simple_test("aBFu7s_D_BFu16ll");
    static STRUCT_IF_C aBFu7s_D_BFu16ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_D_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu16ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7s_D_BFu16ll");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7s_D_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu16ll, aBFu7s_D_BFu16ll)
//============================================================================



static void Test_aBFu7s_D_BFu16s()
{
  {
    init_simple_test("aBFu7s_D_BFu16s");
    static STRUCT_IF_C aBFu7s_D_BFu16s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_D_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu16s.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7s_D_BFu16s");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7s_D_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu16s, aBFu7s_D_BFu16s)
//============================================================================



static void Test_aBFu7s_D_BFu17i()
{
  {
    init_simple_test("aBFu7s_D_BFu17i");
    static STRUCT_IF_C aBFu7s_D_BFu17i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu7s_D_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu17i.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu7s_D_BFu17i");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu7s_D_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu17i, aBFu7s_D_BFu17i)
//============================================================================



static void Test_aBFu7s_D_BFu17ll()
{
  {
    init_simple_test("aBFu7s_D_BFu17ll");
    static STRUCT_IF_C aBFu7s_D_BFu17ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu7s_D_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu17ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu7s_D_BFu17ll");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu7s_D_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu17ll, aBFu7s_D_BFu17ll)
//============================================================================



static void Test_aBFu7s_D_BFu1c()
{
  {
    init_simple_test("aBFu7s_D_BFu1c");
    static STRUCT_IF_C aBFu7s_D_BFu1c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_D_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu1c.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7s_D_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu1c, aBFu7s_D_BFu1c)
//============================================================================



static void Test_aBFu7s_D_BFu1i()
{
  {
    init_simple_test("aBFu7s_D_BFu1i");
    static STRUCT_IF_C aBFu7s_D_BFu1i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_D_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu1i.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7s_D_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu1i, aBFu7s_D_BFu1i)
//============================================================================



static void Test_aBFu7s_D_BFu1ll()
{
  {
    init_simple_test("aBFu7s_D_BFu1ll");
    static STRUCT_IF_C aBFu7s_D_BFu1ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_D_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu1ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7s_D_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu1ll, aBFu7s_D_BFu1ll)
//============================================================================



static void Test_aBFu7s_D_BFu1s()
{
  {
    init_simple_test("aBFu7s_D_BFu1s");
    static STRUCT_IF_C aBFu7s_D_BFu1s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_D_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu1s.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7s_D_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu1s, aBFu7s_D_BFu1s)
//============================================================================



static void Test_aBFu7s_D_BFu31i()
{
  {
    init_simple_test("aBFu7s_D_BFu31i");
    static STRUCT_IF_C aBFu7s_D_BFu31i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_D_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu31i.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu7s_D_BFu31i");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu7s_D_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu31i, aBFu7s_D_BFu31i)
//============================================================================



static void Test_aBFu7s_D_BFu31ll()
{
  {
    init_simple_test("aBFu7s_D_BFu31ll");
    static STRUCT_IF_C aBFu7s_D_BFu31ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_D_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu31ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu7s_D_BFu31ll");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu7s_D_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu31ll, aBFu7s_D_BFu31ll)
//============================================================================



static void Test_aBFu7s_D_BFu32i()
{
  {
    init_simple_test("aBFu7s_D_BFu32i");
    static STRUCT_IF_C aBFu7s_D_BFu32i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_D_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu32i.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu7s_D_BFu32i");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu7s_D_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu32i, aBFu7s_D_BFu32i)
//============================================================================



static void Test_aBFu7s_D_BFu32ll()
{
  {
    init_simple_test("aBFu7s_D_BFu32ll");
    static STRUCT_IF_C aBFu7s_D_BFu32ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_D_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu32ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu7s_D_BFu32ll");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu7s_D_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu32ll, aBFu7s_D_BFu32ll)
//============================================================================



static void Test_aBFu7s_D_BFu33()
{
  {
    init_simple_test("aBFu7s_D_BFu33");
    static STRUCT_IF_C aBFu7s_D_BFu33 lv;
    check2(sizeof(lv), 14, "sizeof(aBFu7s_D_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu33.v2");
    set_bf_and_test(lv, v3, 9, 0, 33, 1, "aBFu7s_D_BFu33");
    set_bf_and_test(lv, v3, 9, 0, 33, hide_ull(1LL<<32), "aBFu7s_D_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu33, aBFu7s_D_BFu33)
//============================================================================



static void Test_aBFu7s_D_BFu7c()
{
  {
    init_simple_test("aBFu7s_D_BFu7c");
    static STRUCT_IF_C aBFu7s_D_BFu7c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_D_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu7c.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7s_D_BFu7c");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu7c, aBFu7s_D_BFu7c)
//============================================================================



static void Test_aBFu7s_D_BFu7i()
{
  {
    init_simple_test("aBFu7s_D_BFu7i");
    static STRUCT_IF_C aBFu7s_D_BFu7i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_D_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu7i.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7s_D_BFu7i");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu7i, aBFu7s_D_BFu7i)
//============================================================================



static void Test_aBFu7s_D_BFu7ll()
{
  {
    init_simple_test("aBFu7s_D_BFu7ll");
    static STRUCT_IF_C aBFu7s_D_BFu7ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_D_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu7ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7s_D_BFu7ll");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu7ll, aBFu7s_D_BFu7ll)
//============================================================================



static void Test_aBFu7s_D_BFu7s()
{
  {
    init_simple_test("aBFu7s_D_BFu7s");
    static STRUCT_IF_C aBFu7s_D_BFu7s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_D_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu7s.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7s_D_BFu7s");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu7s, aBFu7s_D_BFu7s)
//============================================================================



static void Test_aBFu7s_D_BFu8c()
{
  {
    init_simple_test("aBFu7s_D_BFu8c");
    static STRUCT_IF_C aBFu7s_D_BFu8c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_D_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu8c.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7s_D_BFu8c");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7s_D_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu8c, aBFu7s_D_BFu8c)
//============================================================================



static void Test_aBFu7s_D_BFu8i()
{
  {
    init_simple_test("aBFu7s_D_BFu8i");
    static STRUCT_IF_C aBFu7s_D_BFu8i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_D_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu8i.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7s_D_BFu8i");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7s_D_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu8i, aBFu7s_D_BFu8i)
//============================================================================



static void Test_aBFu7s_D_BFu8ll()
{
  {
    init_simple_test("aBFu7s_D_BFu8ll");
    static STRUCT_IF_C aBFu7s_D_BFu8ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_D_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu8ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7s_D_BFu8ll");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7s_D_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu8ll, aBFu7s_D_BFu8ll)
//============================================================================



static void Test_aBFu7s_D_BFu8s()
{
  {
    init_simple_test("aBFu7s_D_BFu8s");
    static STRUCT_IF_C aBFu7s_D_BFu8s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_D_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu8s.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7s_D_BFu8s");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7s_D_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu8s, aBFu7s_D_BFu8s)
//============================================================================



static void Test_aBFu7s_D_BFu9i()
{
  {
    init_simple_test("aBFu7s_D_BFu9i");
    static STRUCT_IF_C aBFu7s_D_BFu9i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_D_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu9i.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7s_D_BFu9i");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7s_D_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu9i, aBFu7s_D_BFu9i)
//============================================================================



static void Test_aBFu7s_D_BFu9ll()
{
  {
    init_simple_test("aBFu7s_D_BFu9ll");
    static STRUCT_IF_C aBFu7s_D_BFu9ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_D_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu9ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7s_D_BFu9ll");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7s_D_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu9ll, aBFu7s_D_BFu9ll)
//============================================================================



static void Test_aBFu7s_D_BFu9s()
{
  {
    init_simple_test("aBFu7s_D_BFu9s");
    static STRUCT_IF_C aBFu7s_D_BFu9s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_D_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7s_D_BFu9s.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7s_D_BFu9s");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7s_D_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_BFu9s, aBFu7s_D_BFu9s)
//============================================================================



static void Test_aBFu7s_D_C()
{
  {
    init_simple_test("aBFu7s_D_C");
    static STRUCT_IF_C aBFu7s_D_C lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_D_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_C");
    check_field_offset(lv, v2, 1, "aBFu7s_D_C.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_D_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_C, aBFu7s_D_C)
//============================================================================



static void Test_aBFu7s_D_D()
{
  {
    init_simple_test("aBFu7s_D_D");
    static STRUCT_IF_C aBFu7s_D_D lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7s_D_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_D");
    check_field_offset(lv, v2, 1, "aBFu7s_D_D.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_D_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_D, aBFu7s_D_D)
//============================================================================



static void Test_aBFu7s_D_F()
{
  {
    init_simple_test("aBFu7s_D_F");
    static STRUCT_IF_C aBFu7s_D_F lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_D_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_F");
    check_field_offset(lv, v2, 1, "aBFu7s_D_F.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_D_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_F, aBFu7s_D_F)
//============================================================================



static void Test_aBFu7s_D_I()
{
  {
    init_simple_test("aBFu7s_D_I");
    static STRUCT_IF_C aBFu7s_D_I lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_D_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_I");
    check_field_offset(lv, v2, 1, "aBFu7s_D_I.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_D_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_I, aBFu7s_D_I)
//============================================================================



static void Test_aBFu7s_D_Ip()
{
  {
    init_simple_test("aBFu7s_D_Ip");
    static STRUCT_IF_C aBFu7s_D_Ip lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7s_D_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_Ip");
    check_field_offset(lv, v2, 1, "aBFu7s_D_Ip.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_D_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_Ip, aBFu7s_D_Ip)
//============================================================================



static void Test_aBFu7s_D_L()
{
  {
    init_simple_test("aBFu7s_D_L");
    static STRUCT_IF_C aBFu7s_D_L lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7s_D_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_L");
    check_field_offset(lv, v2, 1, "aBFu7s_D_L.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_D_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_L, aBFu7s_D_L)
//============================================================================



static void Test_aBFu7s_D_S()
{
  {
    init_simple_test("aBFu7s_D_S");
    static STRUCT_IF_C aBFu7s_D_S lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_D_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_S");
    check_field_offset(lv, v2, 1, "aBFu7s_D_S.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_D_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_S, aBFu7s_D_S)
//============================================================================



static void Test_aBFu7s_D_Uc()
{
  {
    init_simple_test("aBFu7s_D_Uc");
    static STRUCT_IF_C aBFu7s_D_Uc lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_D_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_Uc");
    check_field_offset(lv, v2, 1, "aBFu7s_D_Uc.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_D_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_Uc, aBFu7s_D_Uc)
//============================================================================



static void Test_aBFu7s_D_Ui()
{
  {
    init_simple_test("aBFu7s_D_Ui");
    static STRUCT_IF_C aBFu7s_D_Ui lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_D_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_Ui");
    check_field_offset(lv, v2, 1, "aBFu7s_D_Ui.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_D_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_Ui, aBFu7s_D_Ui)
//============================================================================



static void Test_aBFu7s_D_Ul()
{
  {
    init_simple_test("aBFu7s_D_Ul");
    static STRUCT_IF_C aBFu7s_D_Ul lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7s_D_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_Ul");
    check_field_offset(lv, v2, 1, "aBFu7s_D_Ul.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_D_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_Ul, aBFu7s_D_Ul)
//============================================================================



static void Test_aBFu7s_D_Us()
{
  {
    init_simple_test("aBFu7s_D_Us");
    static STRUCT_IF_C aBFu7s_D_Us lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_D_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_Us");
    check_field_offset(lv, v2, 1, "aBFu7s_D_Us.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_D_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_Us, aBFu7s_D_Us)
//============================================================================



static void Test_aBFu7s_D_Vp()
{
  {
    init_simple_test("aBFu7s_D_Vp");
    static STRUCT_IF_C aBFu7s_D_Vp lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7s_D_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_D_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_D_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_D_Vp");
    check_field_offset(lv, v2, 1, "aBFu7s_D_Vp.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_D_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_D_Vp, aBFu7s_D_Vp)
//============================================================================



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



static void Test_aBFu7s_F_BFu15i()
{
  {
    init_simple_test("aBFu7s_F_BFu15i");
    static STRUCT_IF_C aBFu7s_F_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_F_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu15i.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7s_F_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7s_F_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu15i, aBFu7s_F_BFu15i)
//============================================================================



static void Test_aBFu7s_F_BFu15ll()
{
  {
    init_simple_test("aBFu7s_F_BFu15ll");
    static STRUCT_IF_C aBFu7s_F_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_F_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu15ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7s_F_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7s_F_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu15ll, aBFu7s_F_BFu15ll)
//============================================================================



static void Test_aBFu7s_F_BFu15s()
{
  {
    init_simple_test("aBFu7s_F_BFu15s");
    static STRUCT_IF_C aBFu7s_F_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_F_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu15s.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7s_F_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7s_F_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu15s, aBFu7s_F_BFu15s)
//============================================================================



static void Test_aBFu7s_F_BFu16i()
{
  {
    init_simple_test("aBFu7s_F_BFu16i");
    static STRUCT_IF_C aBFu7s_F_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_F_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu16i.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7s_F_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7s_F_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu16i, aBFu7s_F_BFu16i)
//============================================================================



static void Test_aBFu7s_F_BFu16ll()
{
  {
    init_simple_test("aBFu7s_F_BFu16ll");
    static STRUCT_IF_C aBFu7s_F_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_F_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu16ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7s_F_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7s_F_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu16ll, aBFu7s_F_BFu16ll)
//============================================================================



static void Test_aBFu7s_F_BFu16s()
{
  {
    init_simple_test("aBFu7s_F_BFu16s");
    static STRUCT_IF_C aBFu7s_F_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_F_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu16s.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7s_F_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7s_F_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu16s, aBFu7s_F_BFu16s)
//============================================================================



static void Test_aBFu7s_F_BFu17i()
{
  {
    init_simple_test("aBFu7s_F_BFu17i");
    static STRUCT_IF_C aBFu7s_F_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7s_F_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu17i.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu7s_F_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu7s_F_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu17i, aBFu7s_F_BFu17i)
//============================================================================



static void Test_aBFu7s_F_BFu17ll()
{
  {
    init_simple_test("aBFu7s_F_BFu17ll");
    static STRUCT_IF_C aBFu7s_F_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7s_F_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu17ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu7s_F_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu7s_F_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu17ll, aBFu7s_F_BFu17ll)
//============================================================================



static void Test_aBFu7s_F_BFu1c()
{
  {
    init_simple_test("aBFu7s_F_BFu1c");
    static STRUCT_IF_C aBFu7s_F_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_F_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu1c.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7s_F_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu1c, aBFu7s_F_BFu1c)
//============================================================================



static void Test_aBFu7s_F_BFu1i()
{
  {
    init_simple_test("aBFu7s_F_BFu1i");
    static STRUCT_IF_C aBFu7s_F_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_F_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu1i.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7s_F_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu1i, aBFu7s_F_BFu1i)
//============================================================================



static void Test_aBFu7s_F_BFu1ll()
{
  {
    init_simple_test("aBFu7s_F_BFu1ll");
    static STRUCT_IF_C aBFu7s_F_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_F_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu1ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7s_F_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu1ll, aBFu7s_F_BFu1ll)
//============================================================================



static void Test_aBFu7s_F_BFu1s()
{
  {
    init_simple_test("aBFu7s_F_BFu1s");
    static STRUCT_IF_C aBFu7s_F_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_F_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu1s.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7s_F_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu1s, aBFu7s_F_BFu1s)
//============================================================================



static void Test_aBFu7s_F_BFu31i()
{
  {
    init_simple_test("aBFu7s_F_BFu31i");
    static STRUCT_IF_C aBFu7s_F_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_F_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu31i.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu7s_F_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu7s_F_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu31i, aBFu7s_F_BFu31i)
//============================================================================



static void Test_aBFu7s_F_BFu31ll()
{
  {
    init_simple_test("aBFu7s_F_BFu31ll");
    static STRUCT_IF_C aBFu7s_F_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_F_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu31ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu7s_F_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu7s_F_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu31ll, aBFu7s_F_BFu31ll)
//============================================================================



static void Test_aBFu7s_F_BFu32i()
{
  {
    init_simple_test("aBFu7s_F_BFu32i");
    static STRUCT_IF_C aBFu7s_F_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_F_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu32i.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu7s_F_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu7s_F_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu32i, aBFu7s_F_BFu32i)
//============================================================================



static void Test_aBFu7s_F_BFu32ll()
{
  {
    init_simple_test("aBFu7s_F_BFu32ll");
    static STRUCT_IF_C aBFu7s_F_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_F_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu32ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu7s_F_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu7s_F_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu32ll, aBFu7s_F_BFu32ll)
//============================================================================



static void Test_aBFu7s_F_BFu33()
{
  {
    init_simple_test("aBFu7s_F_BFu33");
    static STRUCT_IF_C aBFu7s_F_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_F_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu33.v2");
    set_bf_and_test(lv, v3, 5, 0, 33, 1, "aBFu7s_F_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, hide_ull(1LL<<32), "aBFu7s_F_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu33, aBFu7s_F_BFu33)
//============================================================================



static void Test_aBFu7s_F_BFu7c()
{
  {
    init_simple_test("aBFu7s_F_BFu7c");
    static STRUCT_IF_C aBFu7s_F_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_F_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu7c.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7s_F_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu7c, aBFu7s_F_BFu7c)
//============================================================================



static void Test_aBFu7s_F_BFu7i()
{
  {
    init_simple_test("aBFu7s_F_BFu7i");
    static STRUCT_IF_C aBFu7s_F_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_F_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu7i.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7s_F_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu7i, aBFu7s_F_BFu7i)
//============================================================================



static void Test_aBFu7s_F_BFu7ll()
{
  {
    init_simple_test("aBFu7s_F_BFu7ll");
    static STRUCT_IF_C aBFu7s_F_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_F_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu7ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7s_F_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu7ll, aBFu7s_F_BFu7ll)
//============================================================================



static void Test_aBFu7s_F_BFu7s()
{
  {
    init_simple_test("aBFu7s_F_BFu7s");
    static STRUCT_IF_C aBFu7s_F_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_F_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu7s.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7s_F_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu7s, aBFu7s_F_BFu7s)
//============================================================================



static void Test_aBFu7s_F_BFu8c()
{
  {
    init_simple_test("aBFu7s_F_BFu8c");
    static STRUCT_IF_C aBFu7s_F_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_F_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu8c.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7s_F_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7s_F_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu8c, aBFu7s_F_BFu8c)
//============================================================================



static void Test_aBFu7s_F_BFu8i()
{
  {
    init_simple_test("aBFu7s_F_BFu8i");
    static STRUCT_IF_C aBFu7s_F_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_F_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu8i.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7s_F_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7s_F_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu8i, aBFu7s_F_BFu8i)
//============================================================================



static void Test_aBFu7s_F_BFu8ll()
{
  {
    init_simple_test("aBFu7s_F_BFu8ll");
    static STRUCT_IF_C aBFu7s_F_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_F_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu8ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7s_F_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7s_F_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu8ll, aBFu7s_F_BFu8ll)
//============================================================================



static void Test_aBFu7s_F_BFu8s()
{
  {
    init_simple_test("aBFu7s_F_BFu8s");
    static STRUCT_IF_C aBFu7s_F_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_F_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu8s.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7s_F_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7s_F_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu8s, aBFu7s_F_BFu8s)
//============================================================================



static void Test_aBFu7s_F_BFu9i()
{
  {
    init_simple_test("aBFu7s_F_BFu9i");
    static STRUCT_IF_C aBFu7s_F_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_F_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu9i.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7s_F_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7s_F_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu9i, aBFu7s_F_BFu9i)
//============================================================================



static void Test_aBFu7s_F_BFu9ll()
{
  {
    init_simple_test("aBFu7s_F_BFu9ll");
    static STRUCT_IF_C aBFu7s_F_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_F_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu9ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7s_F_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7s_F_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu9ll, aBFu7s_F_BFu9ll)
//============================================================================



static void Test_aBFu7s_F_BFu9s()
{
  {
    init_simple_test("aBFu7s_F_BFu9s");
    static STRUCT_IF_C aBFu7s_F_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_F_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7s_F_BFu9s.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7s_F_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7s_F_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_BFu9s, aBFu7s_F_BFu9s)
//============================================================================



static void Test_aBFu7s_F_C()
{
  {
    init_simple_test("aBFu7s_F_C");
    static STRUCT_IF_C aBFu7s_F_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_F_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_C");
    check_field_offset(lv, v2, 1, "aBFu7s_F_C.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_F_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_C, aBFu7s_F_C)
//============================================================================



static void Test_aBFu7s_F_D()
{
  {
    init_simple_test("aBFu7s_F_D");
    static STRUCT_IF_C aBFu7s_F_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_F_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_D");
    check_field_offset(lv, v2, 1, "aBFu7s_F_D.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_F_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_D, aBFu7s_F_D)
//============================================================================



static void Test_aBFu7s_F_F()
{
  {
    init_simple_test("aBFu7s_F_F");
    static STRUCT_IF_C aBFu7s_F_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_F_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_F");
    check_field_offset(lv, v2, 1, "aBFu7s_F_F.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_F_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_F, aBFu7s_F_F)
//============================================================================



static void Test_aBFu7s_F_I()
{
  {
    init_simple_test("aBFu7s_F_I");
    static STRUCT_IF_C aBFu7s_F_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_F_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_I");
    check_field_offset(lv, v2, 1, "aBFu7s_F_I.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_F_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_I, aBFu7s_F_I)
//============================================================================



static void Test_aBFu7s_F_Ip()
{
  {
    init_simple_test("aBFu7s_F_Ip");
    static STRUCT_IF_C aBFu7s_F_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_F_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_Ip");
    check_field_offset(lv, v2, 1, "aBFu7s_F_Ip.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_F_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_Ip, aBFu7s_F_Ip)
//============================================================================



static void Test_aBFu7s_F_L()
{
  {
    init_simple_test("aBFu7s_F_L");
    static STRUCT_IF_C aBFu7s_F_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_F_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_L");
    check_field_offset(lv, v2, 1, "aBFu7s_F_L.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_F_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_L, aBFu7s_F_L)
//============================================================================



static void Test_aBFu7s_F_S()
{
  {
    init_simple_test("aBFu7s_F_S");
    static STRUCT_IF_C aBFu7s_F_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_F_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_S");
    check_field_offset(lv, v2, 1, "aBFu7s_F_S.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_F_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_S, aBFu7s_F_S)
//============================================================================



static void Test_aBFu7s_F_Uc()
{
  {
    init_simple_test("aBFu7s_F_Uc");
    static STRUCT_IF_C aBFu7s_F_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_F_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_Uc");
    check_field_offset(lv, v2, 1, "aBFu7s_F_Uc.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_F_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_Uc, aBFu7s_F_Uc)
//============================================================================



static void Test_aBFu7s_F_Ui()
{
  {
    init_simple_test("aBFu7s_F_Ui");
    static STRUCT_IF_C aBFu7s_F_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_F_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_Ui");
    check_field_offset(lv, v2, 1, "aBFu7s_F_Ui.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_F_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_Ui, aBFu7s_F_Ui)
//============================================================================



static void Test_aBFu7s_F_Ul()
{
  {
    init_simple_test("aBFu7s_F_Ul");
    static STRUCT_IF_C aBFu7s_F_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_F_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_Ul");
    check_field_offset(lv, v2, 1, "aBFu7s_F_Ul.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_F_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_Ul, aBFu7s_F_Ul)
//============================================================================



static void Test_aBFu7s_F_Us()
{
  {
    init_simple_test("aBFu7s_F_Us");
    static STRUCT_IF_C aBFu7s_F_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_F_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_Us");
    check_field_offset(lv, v2, 1, "aBFu7s_F_Us.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_F_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_Us, aBFu7s_F_Us)
//============================================================================



static void Test_aBFu7s_F_Vp()
{
  {
    init_simple_test("aBFu7s_F_Vp");
    static STRUCT_IF_C aBFu7s_F_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_F_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_F_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_F_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_F_Vp");
    check_field_offset(lv, v2, 1, "aBFu7s_F_Vp.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_F_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_F_Vp, aBFu7s_F_Vp)
//============================================================================



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



static void Test_aBFu7s_I_BFu15i()
{
  {
    init_simple_test("aBFu7s_I_BFu15i");
    static STRUCT_IF_C aBFu7s_I_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_I_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu15i.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7s_I_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7s_I_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu15i, aBFu7s_I_BFu15i)
//============================================================================



static void Test_aBFu7s_I_BFu15ll()
{
  {
    init_simple_test("aBFu7s_I_BFu15ll");
    static STRUCT_IF_C aBFu7s_I_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_I_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu15ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7s_I_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7s_I_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu15ll, aBFu7s_I_BFu15ll)
//============================================================================



static void Test_aBFu7s_I_BFu15s()
{
  {
    init_simple_test("aBFu7s_I_BFu15s");
    static STRUCT_IF_C aBFu7s_I_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_I_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu15s.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7s_I_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7s_I_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu15s, aBFu7s_I_BFu15s)
//============================================================================



static void Test_aBFu7s_I_BFu16i()
{
  {
    init_simple_test("aBFu7s_I_BFu16i");
    static STRUCT_IF_C aBFu7s_I_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_I_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu16i.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7s_I_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7s_I_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu16i, aBFu7s_I_BFu16i)
//============================================================================



static void Test_aBFu7s_I_BFu16ll()
{
  {
    init_simple_test("aBFu7s_I_BFu16ll");
    static STRUCT_IF_C aBFu7s_I_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_I_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu16ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7s_I_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7s_I_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu16ll, aBFu7s_I_BFu16ll)
//============================================================================



static void Test_aBFu7s_I_BFu16s()
{
  {
    init_simple_test("aBFu7s_I_BFu16s");
    static STRUCT_IF_C aBFu7s_I_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_I_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu16s.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7s_I_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7s_I_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu16s, aBFu7s_I_BFu16s)
//============================================================================



static void Test_aBFu7s_I_BFu17i()
{
  {
    init_simple_test("aBFu7s_I_BFu17i");
    static STRUCT_IF_C aBFu7s_I_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7s_I_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu17i.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu7s_I_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu7s_I_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu17i, aBFu7s_I_BFu17i)
//============================================================================



static void Test_aBFu7s_I_BFu17ll()
{
  {
    init_simple_test("aBFu7s_I_BFu17ll");
    static STRUCT_IF_C aBFu7s_I_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7s_I_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu17ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu7s_I_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu7s_I_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu17ll, aBFu7s_I_BFu17ll)
//============================================================================



static void Test_aBFu7s_I_BFu1c()
{
  {
    init_simple_test("aBFu7s_I_BFu1c");
    static STRUCT_IF_C aBFu7s_I_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_I_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu1c.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7s_I_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu1c, aBFu7s_I_BFu1c)
//============================================================================



static void Test_aBFu7s_I_BFu1i()
{
  {
    init_simple_test("aBFu7s_I_BFu1i");
    static STRUCT_IF_C aBFu7s_I_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_I_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu1i.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7s_I_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu1i, aBFu7s_I_BFu1i)
//============================================================================



static void Test_aBFu7s_I_BFu1ll()
{
  {
    init_simple_test("aBFu7s_I_BFu1ll");
    static STRUCT_IF_C aBFu7s_I_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_I_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu1ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7s_I_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu1ll, aBFu7s_I_BFu1ll)
//============================================================================



static void Test_aBFu7s_I_BFu1s()
{
  {
    init_simple_test("aBFu7s_I_BFu1s");
    static STRUCT_IF_C aBFu7s_I_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_I_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu1s.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7s_I_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu1s, aBFu7s_I_BFu1s)
//============================================================================



static void Test_aBFu7s_I_BFu31i()
{
  {
    init_simple_test("aBFu7s_I_BFu31i");
    static STRUCT_IF_C aBFu7s_I_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_I_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu31i.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu7s_I_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu7s_I_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu31i, aBFu7s_I_BFu31i)
//============================================================================



static void Test_aBFu7s_I_BFu31ll()
{
  {
    init_simple_test("aBFu7s_I_BFu31ll");
    static STRUCT_IF_C aBFu7s_I_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_I_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu31ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu7s_I_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu7s_I_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu31ll, aBFu7s_I_BFu31ll)
//============================================================================



static void Test_aBFu7s_I_BFu32i()
{
  {
    init_simple_test("aBFu7s_I_BFu32i");
    static STRUCT_IF_C aBFu7s_I_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_I_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu32i.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu7s_I_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu7s_I_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu32i, aBFu7s_I_BFu32i)
//============================================================================



static void Test_aBFu7s_I_BFu32ll()
{
  {
    init_simple_test("aBFu7s_I_BFu32ll");
    static STRUCT_IF_C aBFu7s_I_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_I_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu32ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu7s_I_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu7s_I_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu32ll, aBFu7s_I_BFu32ll)
//============================================================================



static void Test_aBFu7s_I_BFu33()
{
  {
    init_simple_test("aBFu7s_I_BFu33");
    static STRUCT_IF_C aBFu7s_I_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_I_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu33.v2");
    set_bf_and_test(lv, v3, 5, 0, 33, 1, "aBFu7s_I_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, hide_ull(1LL<<32), "aBFu7s_I_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu33, aBFu7s_I_BFu33)
//============================================================================



static void Test_aBFu7s_I_BFu7c()
{
  {
    init_simple_test("aBFu7s_I_BFu7c");
    static STRUCT_IF_C aBFu7s_I_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_I_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu7c.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7s_I_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu7c, aBFu7s_I_BFu7c)
//============================================================================



static void Test_aBFu7s_I_BFu7i()
{
  {
    init_simple_test("aBFu7s_I_BFu7i");
    static STRUCT_IF_C aBFu7s_I_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_I_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu7i.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7s_I_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu7i, aBFu7s_I_BFu7i)
//============================================================================



static void Test_aBFu7s_I_BFu7ll()
{
  {
    init_simple_test("aBFu7s_I_BFu7ll");
    static STRUCT_IF_C aBFu7s_I_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_I_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu7ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7s_I_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu7ll, aBFu7s_I_BFu7ll)
//============================================================================



static void Test_aBFu7s_I_BFu7s()
{
  {
    init_simple_test("aBFu7s_I_BFu7s");
    static STRUCT_IF_C aBFu7s_I_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_I_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu7s.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7s_I_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu7s, aBFu7s_I_BFu7s)
//============================================================================



static void Test_aBFu7s_I_BFu8c()
{
  {
    init_simple_test("aBFu7s_I_BFu8c");
    static STRUCT_IF_C aBFu7s_I_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_I_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu8c.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7s_I_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7s_I_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu8c, aBFu7s_I_BFu8c)
//============================================================================



static void Test_aBFu7s_I_BFu8i()
{
  {
    init_simple_test("aBFu7s_I_BFu8i");
    static STRUCT_IF_C aBFu7s_I_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_I_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu8i.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7s_I_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7s_I_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu8i, aBFu7s_I_BFu8i)
//============================================================================



static void Test_aBFu7s_I_BFu8ll()
{
  {
    init_simple_test("aBFu7s_I_BFu8ll");
    static STRUCT_IF_C aBFu7s_I_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_I_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu8ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7s_I_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7s_I_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu8ll, aBFu7s_I_BFu8ll)
//============================================================================



static void Test_aBFu7s_I_BFu8s()
{
  {
    init_simple_test("aBFu7s_I_BFu8s");
    static STRUCT_IF_C aBFu7s_I_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_I_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu8s.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7s_I_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7s_I_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu8s, aBFu7s_I_BFu8s)
//============================================================================



static void Test_aBFu7s_I_BFu9i()
{
  {
    init_simple_test("aBFu7s_I_BFu9i");
    static STRUCT_IF_C aBFu7s_I_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_I_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu9i.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7s_I_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7s_I_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu9i, aBFu7s_I_BFu9i)
//============================================================================



static void Test_aBFu7s_I_BFu9ll()
{
  {
    init_simple_test("aBFu7s_I_BFu9ll");
    static STRUCT_IF_C aBFu7s_I_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_I_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu9ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7s_I_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7s_I_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu9ll, aBFu7s_I_BFu9ll)
//============================================================================



static void Test_aBFu7s_I_BFu9s()
{
  {
    init_simple_test("aBFu7s_I_BFu9s");
    static STRUCT_IF_C aBFu7s_I_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_I_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7s_I_BFu9s.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7s_I_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7s_I_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_BFu9s, aBFu7s_I_BFu9s)
//============================================================================



static void Test_aBFu7s_I_C()
{
  {
    init_simple_test("aBFu7s_I_C");
    static STRUCT_IF_C aBFu7s_I_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_I_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_C");
    check_field_offset(lv, v2, 1, "aBFu7s_I_C.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_I_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_C, aBFu7s_I_C)
//============================================================================



static void Test_aBFu7s_I_D()
{
  {
    init_simple_test("aBFu7s_I_D");
    static STRUCT_IF_C aBFu7s_I_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_I_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_D");
    check_field_offset(lv, v2, 1, "aBFu7s_I_D.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_I_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_D, aBFu7s_I_D)
//============================================================================



static void Test_aBFu7s_I_F()
{
  {
    init_simple_test("aBFu7s_I_F");
    static STRUCT_IF_C aBFu7s_I_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_I_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_F");
    check_field_offset(lv, v2, 1, "aBFu7s_I_F.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_I_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_F, aBFu7s_I_F)
//============================================================================



static void Test_aBFu7s_I_I()
{
  {
    init_simple_test("aBFu7s_I_I");
    static STRUCT_IF_C aBFu7s_I_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_I_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_I");
    check_field_offset(lv, v2, 1, "aBFu7s_I_I.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_I_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_I, aBFu7s_I_I)
//============================================================================



static void Test_aBFu7s_I_Ip()
{
  {
    init_simple_test("aBFu7s_I_Ip");
    static STRUCT_IF_C aBFu7s_I_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_I_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_Ip");
    check_field_offset(lv, v2, 1, "aBFu7s_I_Ip.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_I_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_Ip, aBFu7s_I_Ip)
//============================================================================



static void Test_aBFu7s_I_L()
{
  {
    init_simple_test("aBFu7s_I_L");
    static STRUCT_IF_C aBFu7s_I_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_I_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_L");
    check_field_offset(lv, v2, 1, "aBFu7s_I_L.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_I_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_L, aBFu7s_I_L)
//============================================================================



static void Test_aBFu7s_I_S()
{
  {
    init_simple_test("aBFu7s_I_S");
    static STRUCT_IF_C aBFu7s_I_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_I_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_S");
    check_field_offset(lv, v2, 1, "aBFu7s_I_S.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_I_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_S, aBFu7s_I_S)
//============================================================================



static void Test_aBFu7s_I_Uc()
{
  {
    init_simple_test("aBFu7s_I_Uc");
    static STRUCT_IF_C aBFu7s_I_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_I_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_Uc");
    check_field_offset(lv, v2, 1, "aBFu7s_I_Uc.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_I_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_Uc, aBFu7s_I_Uc)
//============================================================================



static void Test_aBFu7s_I_Ui()
{
  {
    init_simple_test("aBFu7s_I_Ui");
    static STRUCT_IF_C aBFu7s_I_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_I_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_Ui");
    check_field_offset(lv, v2, 1, "aBFu7s_I_Ui.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_I_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_Ui, aBFu7s_I_Ui)
//============================================================================



static void Test_aBFu7s_I_Ul()
{
  {
    init_simple_test("aBFu7s_I_Ul");
    static STRUCT_IF_C aBFu7s_I_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_I_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_Ul");
    check_field_offset(lv, v2, 1, "aBFu7s_I_Ul.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_I_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_Ul, aBFu7s_I_Ul)
//============================================================================



static void Test_aBFu7s_I_Us()
{
  {
    init_simple_test("aBFu7s_I_Us");
    static STRUCT_IF_C aBFu7s_I_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_I_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_Us");
    check_field_offset(lv, v2, 1, "aBFu7s_I_Us.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_I_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_Us, aBFu7s_I_Us)
//============================================================================



static void Test_aBFu7s_I_Vp()
{
  {
    init_simple_test("aBFu7s_I_Vp");
    static STRUCT_IF_C aBFu7s_I_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_I_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_I_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_I_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_I_Vp");
    check_field_offset(lv, v2, 1, "aBFu7s_I_Vp.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_I_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_I_Vp, aBFu7s_I_Vp)
//============================================================================



static void Test_aBFu7s_Ip()
{
  {
    init_simple_test("aBFu7s_Ip");
    static STRUCT_IF_C aBFu7s_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu7s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip, aBFu7s_Ip)
//============================================================================



static void Test_aBFu7s_Ip_BFu15i()
{
  {
    init_simple_test("aBFu7s_Ip_BFu15i");
    static STRUCT_IF_C aBFu7s_Ip_BFu15i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Ip_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu15i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "aBFu7s_Ip_BFu15i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "aBFu7s_Ip_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu15i, aBFu7s_Ip_BFu15i)
//============================================================================



static void Test_aBFu7s_Ip_BFu15ll()
{
  {
    init_simple_test("aBFu7s_Ip_BFu15ll");
    static STRUCT_IF_C aBFu7s_Ip_BFu15ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Ip_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu15ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "aBFu7s_Ip_BFu15ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "aBFu7s_Ip_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu15ll, aBFu7s_Ip_BFu15ll)
//============================================================================



static void Test_aBFu7s_Ip_BFu15s()
{
  {
    init_simple_test("aBFu7s_Ip_BFu15s");
    static STRUCT_IF_C aBFu7s_Ip_BFu15s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Ip_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu15s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "aBFu7s_Ip_BFu15s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "aBFu7s_Ip_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu15s, aBFu7s_Ip_BFu15s)
//============================================================================



static void Test_aBFu7s_Ip_BFu16i()
{
  {
    init_simple_test("aBFu7s_Ip_BFu16i");
    static STRUCT_IF_C aBFu7s_Ip_BFu16i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Ip_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu16i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "aBFu7s_Ip_BFu16i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "aBFu7s_Ip_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu16i, aBFu7s_Ip_BFu16i)
//============================================================================



static void Test_aBFu7s_Ip_BFu16ll()
{
  {
    init_simple_test("aBFu7s_Ip_BFu16ll");
    static STRUCT_IF_C aBFu7s_Ip_BFu16ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Ip_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu16ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "aBFu7s_Ip_BFu16ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "aBFu7s_Ip_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu16ll, aBFu7s_Ip_BFu16ll)
//============================================================================



static void Test_aBFu7s_Ip_BFu16s()
{
  {
    init_simple_test("aBFu7s_Ip_BFu16s");
    static STRUCT_IF_C aBFu7s_Ip_BFu16s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Ip_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu16s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "aBFu7s_Ip_BFu16s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "aBFu7s_Ip_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu16s, aBFu7s_Ip_BFu16s)
//============================================================================



static void Test_aBFu7s_Ip_BFu17i()
{
  {
    init_simple_test("aBFu7s_Ip_BFu17i");
    static STRUCT_IF_C aBFu7s_Ip_BFu17i lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu7s_Ip_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu17i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, 1, "aBFu7s_Ip_BFu17i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, hide_ull(1LL<<16), "aBFu7s_Ip_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu17i, aBFu7s_Ip_BFu17i)
//============================================================================



static void Test_aBFu7s_Ip_BFu17ll()
{
  {
    init_simple_test("aBFu7s_Ip_BFu17ll");
    static STRUCT_IF_C aBFu7s_Ip_BFu17ll lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu7s_Ip_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu17ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, 1, "aBFu7s_Ip_BFu17ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, hide_ull(1LL<<16), "aBFu7s_Ip_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu17ll, aBFu7s_Ip_BFu17ll)
//============================================================================



static void Test_aBFu7s_Ip_BFu1c()
{
  {
    init_simple_test("aBFu7s_Ip_BFu1c");
    static STRUCT_IF_C aBFu7s_Ip_BFu1c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Ip_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu1c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "aBFu7s_Ip_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu1c, aBFu7s_Ip_BFu1c)
//============================================================================



static void Test_aBFu7s_Ip_BFu1i()
{
  {
    init_simple_test("aBFu7s_Ip_BFu1i");
    static STRUCT_IF_C aBFu7s_Ip_BFu1i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Ip_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu1i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "aBFu7s_Ip_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu1i, aBFu7s_Ip_BFu1i)
//============================================================================



static void Test_aBFu7s_Ip_BFu1ll()
{
  {
    init_simple_test("aBFu7s_Ip_BFu1ll");
    static STRUCT_IF_C aBFu7s_Ip_BFu1ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Ip_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu1ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "aBFu7s_Ip_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu1ll, aBFu7s_Ip_BFu1ll)
//============================================================================



static void Test_aBFu7s_Ip_BFu1s()
{
  {
    init_simple_test("aBFu7s_Ip_BFu1s");
    static STRUCT_IF_C aBFu7s_Ip_BFu1s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Ip_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu1s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "aBFu7s_Ip_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu1s, aBFu7s_Ip_BFu1s)
//============================================================================



static void Test_aBFu7s_Ip_BFu31i()
{
  {
    init_simple_test("aBFu7s_Ip_BFu31i");
    static STRUCT_IF_C aBFu7s_Ip_BFu31i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_Ip_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu31i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, 1, "aBFu7s_Ip_BFu31i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, hide_ull(1LL<<30), "aBFu7s_Ip_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu31i, aBFu7s_Ip_BFu31i)
//============================================================================



static void Test_aBFu7s_Ip_BFu31ll()
{
  {
    init_simple_test("aBFu7s_Ip_BFu31ll");
    static STRUCT_IF_C aBFu7s_Ip_BFu31ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_Ip_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu31ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, 1, "aBFu7s_Ip_BFu31ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, hide_ull(1LL<<30), "aBFu7s_Ip_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu31ll, aBFu7s_Ip_BFu31ll)
//============================================================================



static void Test_aBFu7s_Ip_BFu32i()
{
  {
    init_simple_test("aBFu7s_Ip_BFu32i");
    static STRUCT_IF_C aBFu7s_Ip_BFu32i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_Ip_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu32i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, 1, "aBFu7s_Ip_BFu32i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, hide_ull(1LL<<31), "aBFu7s_Ip_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu32i, aBFu7s_Ip_BFu32i)
//============================================================================



static void Test_aBFu7s_Ip_BFu32ll()
{
  {
    init_simple_test("aBFu7s_Ip_BFu32ll");
    static STRUCT_IF_C aBFu7s_Ip_BFu32ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_Ip_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu32ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, 1, "aBFu7s_Ip_BFu32ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, hide_ull(1LL<<31), "aBFu7s_Ip_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu32ll, aBFu7s_Ip_BFu32ll)
//============================================================================



static void Test_aBFu7s_Ip_BFu33()
{
  {
    init_simple_test("aBFu7s_Ip_BFu33");
    static STRUCT_IF_C aBFu7s_Ip_BFu33 lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu7s_Ip_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu33.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 33, 1, "aBFu7s_Ip_BFu33");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 33, hide_ull(1LL<<32), "aBFu7s_Ip_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu33, aBFu7s_Ip_BFu33)
//============================================================================



static void Test_aBFu7s_Ip_BFu7c()
{
  {
    init_simple_test("aBFu7s_Ip_BFu7c");
    static STRUCT_IF_C aBFu7s_Ip_BFu7c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Ip_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu7c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "aBFu7s_Ip_BFu7c");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu7c, aBFu7s_Ip_BFu7c)
//============================================================================



static void Test_aBFu7s_Ip_BFu7i()
{
  {
    init_simple_test("aBFu7s_Ip_BFu7i");
    static STRUCT_IF_C aBFu7s_Ip_BFu7i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Ip_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu7i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "aBFu7s_Ip_BFu7i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu7i, aBFu7s_Ip_BFu7i)
//============================================================================



static void Test_aBFu7s_Ip_BFu7ll()
{
  {
    init_simple_test("aBFu7s_Ip_BFu7ll");
    static STRUCT_IF_C aBFu7s_Ip_BFu7ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Ip_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu7ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "aBFu7s_Ip_BFu7ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu7ll, aBFu7s_Ip_BFu7ll)
//============================================================================



static void Test_aBFu7s_Ip_BFu7s()
{
  {
    init_simple_test("aBFu7s_Ip_BFu7s");
    static STRUCT_IF_C aBFu7s_Ip_BFu7s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Ip_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu7s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "aBFu7s_Ip_BFu7s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu7s, aBFu7s_Ip_BFu7s)
//============================================================================



static void Test_aBFu7s_Ip_BFu8c()
{
  {
    init_simple_test("aBFu7s_Ip_BFu8c");
    static STRUCT_IF_C aBFu7s_Ip_BFu8c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Ip_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu8c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "aBFu7s_Ip_BFu8c");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "aBFu7s_Ip_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu8c, aBFu7s_Ip_BFu8c)
//============================================================================



static void Test_aBFu7s_Ip_BFu8i()
{
  {
    init_simple_test("aBFu7s_Ip_BFu8i");
    static STRUCT_IF_C aBFu7s_Ip_BFu8i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Ip_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu8i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "aBFu7s_Ip_BFu8i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "aBFu7s_Ip_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu8i, aBFu7s_Ip_BFu8i)
//============================================================================



static void Test_aBFu7s_Ip_BFu8ll()
{
  {
    init_simple_test("aBFu7s_Ip_BFu8ll");
    static STRUCT_IF_C aBFu7s_Ip_BFu8ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Ip_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu8ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "aBFu7s_Ip_BFu8ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "aBFu7s_Ip_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu8ll, aBFu7s_Ip_BFu8ll)
//============================================================================



static void Test_aBFu7s_Ip_BFu8s()
{
  {
    init_simple_test("aBFu7s_Ip_BFu8s");
    static STRUCT_IF_C aBFu7s_Ip_BFu8s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Ip_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu8s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "aBFu7s_Ip_BFu8s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "aBFu7s_Ip_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu8s, aBFu7s_Ip_BFu8s)
//============================================================================



static void Test_aBFu7s_Ip_BFu9i()
{
  {
    init_simple_test("aBFu7s_Ip_BFu9i");
    static STRUCT_IF_C aBFu7s_Ip_BFu9i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Ip_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu9i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "aBFu7s_Ip_BFu9i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "aBFu7s_Ip_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu9i, aBFu7s_Ip_BFu9i)
//============================================================================



static void Test_aBFu7s_Ip_BFu9ll()
{
  {
    init_simple_test("aBFu7s_Ip_BFu9ll");
    static STRUCT_IF_C aBFu7s_Ip_BFu9ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Ip_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu9ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "aBFu7s_Ip_BFu9ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "aBFu7s_Ip_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu9ll, aBFu7s_Ip_BFu9ll)
//============================================================================



static void Test_aBFu7s_Ip_BFu9s()
{
  {
    init_simple_test("aBFu7s_Ip_BFu9s");
    static STRUCT_IF_C aBFu7s_Ip_BFu9s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Ip_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_BFu9s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "aBFu7s_Ip_BFu9s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "aBFu7s_Ip_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_BFu9s, aBFu7s_Ip_BFu9s)
//============================================================================



static void Test_aBFu7s_Ip_C()
{
  {
    init_simple_test("aBFu7s_Ip_C");
    static STRUCT_IF_C aBFu7s_Ip_C lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Ip_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_C");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_C.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Ip_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_C, aBFu7s_Ip_C)
//============================================================================



static void Test_aBFu7s_Ip_D()
{
  {
    init_simple_test("aBFu7s_Ip_D");
    static STRUCT_IF_C aBFu7s_Ip_D lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7s_Ip_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_D");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_D.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Ip_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_D, aBFu7s_Ip_D)
//============================================================================



static void Test_aBFu7s_Ip_F()
{
  {
    init_simple_test("aBFu7s_Ip_F");
    static STRUCT_IF_C aBFu7s_Ip_F lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_Ip_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_F");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_F.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Ip_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_F, aBFu7s_Ip_F)
//============================================================================



static void Test_aBFu7s_Ip_I()
{
  {
    init_simple_test("aBFu7s_Ip_I");
    static STRUCT_IF_C aBFu7s_Ip_I lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_Ip_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_I");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_I.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Ip_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_I, aBFu7s_Ip_I)
//============================================================================



static void Test_aBFu7s_Ip_Ip()
{
  {
    init_simple_test("aBFu7s_Ip_Ip");
    static STRUCT_IF_C aBFu7s_Ip_Ip lv;
    check2(sizeof(lv), ABISELECT(17,9), "sizeof(aBFu7s_Ip_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_Ip");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_Ip.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Ip_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_Ip, aBFu7s_Ip_Ip)
//============================================================================



static void Test_aBFu7s_Ip_L()
{
  {
    init_simple_test("aBFu7s_Ip_L");
    static STRUCT_IF_C aBFu7s_Ip_L lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7s_Ip_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_L");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_L.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Ip_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_L, aBFu7s_Ip_L)
//============================================================================



static void Test_aBFu7s_Ip_S()
{
  {
    init_simple_test("aBFu7s_Ip_S");
    static STRUCT_IF_C aBFu7s_Ip_S lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Ip_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_S");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_S.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Ip_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_S, aBFu7s_Ip_S)
//============================================================================



static void Test_aBFu7s_Ip_Uc()
{
  {
    init_simple_test("aBFu7s_Ip_Uc");
    static STRUCT_IF_C aBFu7s_Ip_Uc lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Ip_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_Uc");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_Uc.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Ip_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_Uc, aBFu7s_Ip_Uc)
//============================================================================



static void Test_aBFu7s_Ip_Ui()
{
  {
    init_simple_test("aBFu7s_Ip_Ui");
    static STRUCT_IF_C aBFu7s_Ip_Ui lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_Ip_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_Ui");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_Ui.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Ip_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_Ui, aBFu7s_Ip_Ui)
//============================================================================



static void Test_aBFu7s_Ip_Ul()
{
  {
    init_simple_test("aBFu7s_Ip_Ul");
    static STRUCT_IF_C aBFu7s_Ip_Ul lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7s_Ip_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_Ul");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_Ul.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Ip_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_Ul, aBFu7s_Ip_Ul)
//============================================================================



static void Test_aBFu7s_Ip_Us()
{
  {
    init_simple_test("aBFu7s_Ip_Us");
    static STRUCT_IF_C aBFu7s_Ip_Us lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Ip_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_Us");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_Us.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Ip_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_Us, aBFu7s_Ip_Us)
//============================================================================



static void Test_aBFu7s_Ip_Vp()
{
  {
    init_simple_test("aBFu7s_Ip_Vp");
    static STRUCT_IF_C aBFu7s_Ip_Vp lv;
    check2(sizeof(lv), ABISELECT(17,9), "sizeof(aBFu7s_Ip_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ip_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ip_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ip_Vp");
    check_field_offset(lv, v2, 1, "aBFu7s_Ip_Vp.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Ip_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ip_Vp, aBFu7s_Ip_Vp)
//============================================================================



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



static void Test_aBFu7s_L_BFu15i()
{
  {
    init_simple_test("aBFu7s_L_BFu15i");
    static STRUCT_IF_C aBFu7s_L_BFu15i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_L_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu15i.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7s_L_BFu15i");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7s_L_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu15i, aBFu7s_L_BFu15i)
//============================================================================



static void Test_aBFu7s_L_BFu15ll()
{
  {
    init_simple_test("aBFu7s_L_BFu15ll");
    static STRUCT_IF_C aBFu7s_L_BFu15ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_L_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu15ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7s_L_BFu15ll");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7s_L_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu15ll, aBFu7s_L_BFu15ll)
//============================================================================



static void Test_aBFu7s_L_BFu15s()
{
  {
    init_simple_test("aBFu7s_L_BFu15s");
    static STRUCT_IF_C aBFu7s_L_BFu15s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_L_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu15s.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7s_L_BFu15s");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7s_L_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu15s, aBFu7s_L_BFu15s)
//============================================================================



static void Test_aBFu7s_L_BFu16i()
{
  {
    init_simple_test("aBFu7s_L_BFu16i");
    static STRUCT_IF_C aBFu7s_L_BFu16i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_L_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu16i.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7s_L_BFu16i");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7s_L_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu16i, aBFu7s_L_BFu16i)
//============================================================================



static void Test_aBFu7s_L_BFu16ll()
{
  {
    init_simple_test("aBFu7s_L_BFu16ll");
    static STRUCT_IF_C aBFu7s_L_BFu16ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_L_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu16ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7s_L_BFu16ll");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7s_L_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu16ll, aBFu7s_L_BFu16ll)
//============================================================================



static void Test_aBFu7s_L_BFu16s()
{
  {
    init_simple_test("aBFu7s_L_BFu16s");
    static STRUCT_IF_C aBFu7s_L_BFu16s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_L_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu16s.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7s_L_BFu16s");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7s_L_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu16s, aBFu7s_L_BFu16s)
//============================================================================



static void Test_aBFu7s_L_BFu17i()
{
  {
    init_simple_test("aBFu7s_L_BFu17i");
    static STRUCT_IF_C aBFu7s_L_BFu17i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu7s_L_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu17i.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu7s_L_BFu17i");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu7s_L_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu17i, aBFu7s_L_BFu17i)
//============================================================================



static void Test_aBFu7s_L_BFu17ll()
{
  {
    init_simple_test("aBFu7s_L_BFu17ll");
    static STRUCT_IF_C aBFu7s_L_BFu17ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu7s_L_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu17ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu7s_L_BFu17ll");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu7s_L_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu17ll, aBFu7s_L_BFu17ll)
//============================================================================



static void Test_aBFu7s_L_BFu1c()
{
  {
    init_simple_test("aBFu7s_L_BFu1c");
    static STRUCT_IF_C aBFu7s_L_BFu1c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_L_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu1c.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7s_L_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu1c, aBFu7s_L_BFu1c)
//============================================================================



static void Test_aBFu7s_L_BFu1i()
{
  {
    init_simple_test("aBFu7s_L_BFu1i");
    static STRUCT_IF_C aBFu7s_L_BFu1i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_L_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu1i.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7s_L_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu1i, aBFu7s_L_BFu1i)
//============================================================================



static void Test_aBFu7s_L_BFu1ll()
{
  {
    init_simple_test("aBFu7s_L_BFu1ll");
    static STRUCT_IF_C aBFu7s_L_BFu1ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_L_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu1ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7s_L_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu1ll, aBFu7s_L_BFu1ll)
//============================================================================



static void Test_aBFu7s_L_BFu1s()
{
  {
    init_simple_test("aBFu7s_L_BFu1s");
    static STRUCT_IF_C aBFu7s_L_BFu1s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_L_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu1s.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7s_L_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu1s, aBFu7s_L_BFu1s)
//============================================================================



static void Test_aBFu7s_L_BFu31i()
{
  {
    init_simple_test("aBFu7s_L_BFu31i");
    static STRUCT_IF_C aBFu7s_L_BFu31i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_L_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu31i.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu7s_L_BFu31i");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu7s_L_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu31i, aBFu7s_L_BFu31i)
//============================================================================



static void Test_aBFu7s_L_BFu31ll()
{
  {
    init_simple_test("aBFu7s_L_BFu31ll");
    static STRUCT_IF_C aBFu7s_L_BFu31ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_L_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu31ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu7s_L_BFu31ll");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu7s_L_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu31ll, aBFu7s_L_BFu31ll)
//============================================================================



static void Test_aBFu7s_L_BFu32i()
{
  {
    init_simple_test("aBFu7s_L_BFu32i");
    static STRUCT_IF_C aBFu7s_L_BFu32i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_L_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu32i.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu7s_L_BFu32i");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu7s_L_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu32i, aBFu7s_L_BFu32i)
//============================================================================



static void Test_aBFu7s_L_BFu32ll()
{
  {
    init_simple_test("aBFu7s_L_BFu32ll");
    static STRUCT_IF_C aBFu7s_L_BFu32ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_L_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu32ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu7s_L_BFu32ll");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu7s_L_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu32ll, aBFu7s_L_BFu32ll)
//============================================================================



static void Test_aBFu7s_L_BFu33()
{
  {
    init_simple_test("aBFu7s_L_BFu33");
    static STRUCT_IF_C aBFu7s_L_BFu33 lv;
    check2(sizeof(lv), 14, "sizeof(aBFu7s_L_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu33.v2");
    set_bf_and_test(lv, v3, 9, 0, 33, 1, "aBFu7s_L_BFu33");
    set_bf_and_test(lv, v3, 9, 0, 33, hide_ull(1LL<<32), "aBFu7s_L_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu33, aBFu7s_L_BFu33)
//============================================================================



static void Test_aBFu7s_L_BFu7c()
{
  {
    init_simple_test("aBFu7s_L_BFu7c");
    static STRUCT_IF_C aBFu7s_L_BFu7c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_L_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu7c.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7s_L_BFu7c");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu7c, aBFu7s_L_BFu7c)
//============================================================================



static void Test_aBFu7s_L_BFu7i()
{
  {
    init_simple_test("aBFu7s_L_BFu7i");
    static STRUCT_IF_C aBFu7s_L_BFu7i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_L_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu7i.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7s_L_BFu7i");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu7i, aBFu7s_L_BFu7i)
//============================================================================



static void Test_aBFu7s_L_BFu7ll()
{
  {
    init_simple_test("aBFu7s_L_BFu7ll");
    static STRUCT_IF_C aBFu7s_L_BFu7ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_L_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu7ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7s_L_BFu7ll");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu7ll, aBFu7s_L_BFu7ll)
//============================================================================



static void Test_aBFu7s_L_BFu7s()
{
  {
    init_simple_test("aBFu7s_L_BFu7s");
    static STRUCT_IF_C aBFu7s_L_BFu7s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_L_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu7s.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7s_L_BFu7s");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu7s, aBFu7s_L_BFu7s)
//============================================================================



static void Test_aBFu7s_L_BFu8c()
{
  {
    init_simple_test("aBFu7s_L_BFu8c");
    static STRUCT_IF_C aBFu7s_L_BFu8c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_L_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu8c.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7s_L_BFu8c");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7s_L_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu8c, aBFu7s_L_BFu8c)
//============================================================================



static void Test_aBFu7s_L_BFu8i()
{
  {
    init_simple_test("aBFu7s_L_BFu8i");
    static STRUCT_IF_C aBFu7s_L_BFu8i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_L_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu8i.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7s_L_BFu8i");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7s_L_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu8i, aBFu7s_L_BFu8i)
//============================================================================



static void Test_aBFu7s_L_BFu8ll()
{
  {
    init_simple_test("aBFu7s_L_BFu8ll");
    static STRUCT_IF_C aBFu7s_L_BFu8ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_L_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu8ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7s_L_BFu8ll");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7s_L_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu8ll, aBFu7s_L_BFu8ll)
//============================================================================



static void Test_aBFu7s_L_BFu8s()
{
  {
    init_simple_test("aBFu7s_L_BFu8s");
    static STRUCT_IF_C aBFu7s_L_BFu8s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_L_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu8s.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7s_L_BFu8s");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7s_L_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu8s, aBFu7s_L_BFu8s)
//============================================================================



static void Test_aBFu7s_L_BFu9i()
{
  {
    init_simple_test("aBFu7s_L_BFu9i");
    static STRUCT_IF_C aBFu7s_L_BFu9i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_L_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu9i.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7s_L_BFu9i");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7s_L_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu9i, aBFu7s_L_BFu9i)
//============================================================================



static void Test_aBFu7s_L_BFu9ll()
{
  {
    init_simple_test("aBFu7s_L_BFu9ll");
    static STRUCT_IF_C aBFu7s_L_BFu9ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_L_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu9ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7s_L_BFu9ll");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7s_L_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu9ll, aBFu7s_L_BFu9ll)
//============================================================================



static void Test_aBFu7s_L_BFu9s()
{
  {
    init_simple_test("aBFu7s_L_BFu9s");
    static STRUCT_IF_C aBFu7s_L_BFu9s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_L_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7s_L_BFu9s.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7s_L_BFu9s");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7s_L_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_BFu9s, aBFu7s_L_BFu9s)
//============================================================================



static void Test_aBFu7s_L_C()
{
  {
    init_simple_test("aBFu7s_L_C");
    static STRUCT_IF_C aBFu7s_L_C lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_L_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_C");
    check_field_offset(lv, v2, 1, "aBFu7s_L_C.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_L_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_C, aBFu7s_L_C)
//============================================================================



static void Test_aBFu7s_L_D()
{
  {
    init_simple_test("aBFu7s_L_D");
    static STRUCT_IF_C aBFu7s_L_D lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7s_L_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_D");
    check_field_offset(lv, v2, 1, "aBFu7s_L_D.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_L_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_D, aBFu7s_L_D)
//============================================================================



static void Test_aBFu7s_L_F()
{
  {
    init_simple_test("aBFu7s_L_F");
    static STRUCT_IF_C aBFu7s_L_F lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_L_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_F");
    check_field_offset(lv, v2, 1, "aBFu7s_L_F.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_L_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_F, aBFu7s_L_F)
//============================================================================



static void Test_aBFu7s_L_I()
{
  {
    init_simple_test("aBFu7s_L_I");
    static STRUCT_IF_C aBFu7s_L_I lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_L_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_I");
    check_field_offset(lv, v2, 1, "aBFu7s_L_I.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_L_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_I, aBFu7s_L_I)
//============================================================================



static void Test_aBFu7s_L_Ip()
{
  {
    init_simple_test("aBFu7s_L_Ip");
    static STRUCT_IF_C aBFu7s_L_Ip lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7s_L_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_Ip");
    check_field_offset(lv, v2, 1, "aBFu7s_L_Ip.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_L_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_Ip, aBFu7s_L_Ip)
//============================================================================



static void Test_aBFu7s_L_L()
{
  {
    init_simple_test("aBFu7s_L_L");
    static STRUCT_IF_C aBFu7s_L_L lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7s_L_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_L");
    check_field_offset(lv, v2, 1, "aBFu7s_L_L.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_L_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_L, aBFu7s_L_L)
//============================================================================



static void Test_aBFu7s_L_S()
{
  {
    init_simple_test("aBFu7s_L_S");
    static STRUCT_IF_C aBFu7s_L_S lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_L_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_S");
    check_field_offset(lv, v2, 1, "aBFu7s_L_S.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_L_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_S, aBFu7s_L_S)
//============================================================================



static void Test_aBFu7s_L_Uc()
{
  {
    init_simple_test("aBFu7s_L_Uc");
    static STRUCT_IF_C aBFu7s_L_Uc lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_L_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_Uc");
    check_field_offset(lv, v2, 1, "aBFu7s_L_Uc.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_L_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_Uc, aBFu7s_L_Uc)
//============================================================================



static void Test_aBFu7s_L_Ui()
{
  {
    init_simple_test("aBFu7s_L_Ui");
    static STRUCT_IF_C aBFu7s_L_Ui lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_L_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_Ui");
    check_field_offset(lv, v2, 1, "aBFu7s_L_Ui.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_L_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_Ui, aBFu7s_L_Ui)
//============================================================================



static void Test_aBFu7s_L_Ul()
{
  {
    init_simple_test("aBFu7s_L_Ul");
    static STRUCT_IF_C aBFu7s_L_Ul lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7s_L_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_Ul");
    check_field_offset(lv, v2, 1, "aBFu7s_L_Ul.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_L_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_Ul, aBFu7s_L_Ul)
//============================================================================



static void Test_aBFu7s_L_Us()
{
  {
    init_simple_test("aBFu7s_L_Us");
    static STRUCT_IF_C aBFu7s_L_Us lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_L_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_Us");
    check_field_offset(lv, v2, 1, "aBFu7s_L_Us.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_L_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_Us, aBFu7s_L_Us)
//============================================================================



static void Test_aBFu7s_L_Vp()
{
  {
    init_simple_test("aBFu7s_L_Vp");
    static STRUCT_IF_C aBFu7s_L_Vp lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7s_L_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_L_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_L_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_L_Vp");
    check_field_offset(lv, v2, 1, "aBFu7s_L_Vp.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_L_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_L_Vp, aBFu7s_L_Vp)
//============================================================================



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



static void Test_aBFu7s_S_BFu15i()
{
  {
    init_simple_test("aBFu7s_S_BFu15i");
    static STRUCT_IF_C aBFu7s_S_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_S_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu15i.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7s_S_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7s_S_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu15i, aBFu7s_S_BFu15i)
//============================================================================



static void Test_aBFu7s_S_BFu15ll()
{
  {
    init_simple_test("aBFu7s_S_BFu15ll");
    static STRUCT_IF_C aBFu7s_S_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_S_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu15ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7s_S_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7s_S_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu15ll, aBFu7s_S_BFu15ll)
//============================================================================



static void Test_aBFu7s_S_BFu15s()
{
  {
    init_simple_test("aBFu7s_S_BFu15s");
    static STRUCT_IF_C aBFu7s_S_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_S_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu15s.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7s_S_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7s_S_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu15s, aBFu7s_S_BFu15s)
//============================================================================



static void Test_aBFu7s_S_BFu16i()
{
  {
    init_simple_test("aBFu7s_S_BFu16i");
    static STRUCT_IF_C aBFu7s_S_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_S_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu16i.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7s_S_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7s_S_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu16i, aBFu7s_S_BFu16i)
//============================================================================



static void Test_aBFu7s_S_BFu16ll()
{
  {
    init_simple_test("aBFu7s_S_BFu16ll");
    static STRUCT_IF_C aBFu7s_S_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_S_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu16ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7s_S_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7s_S_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu16ll, aBFu7s_S_BFu16ll)
//============================================================================



static void Test_aBFu7s_S_BFu16s()
{
  {
    init_simple_test("aBFu7s_S_BFu16s");
    static STRUCT_IF_C aBFu7s_S_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_S_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu16s.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7s_S_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7s_S_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu16s, aBFu7s_S_BFu16s)
//============================================================================



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



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



static void Test_aBFu7s_S_BFu1c()
{
  {
    init_simple_test("aBFu7s_S_BFu1c");
    static STRUCT_IF_C aBFu7s_S_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_S_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu1c.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "aBFu7s_S_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu1c, aBFu7s_S_BFu1c)
//============================================================================



static void Test_aBFu7s_S_BFu1i()
{
  {
    init_simple_test("aBFu7s_S_BFu1i");
    static STRUCT_IF_C aBFu7s_S_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_S_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu1i.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "aBFu7s_S_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu1i, aBFu7s_S_BFu1i)
//============================================================================



static void Test_aBFu7s_S_BFu1ll()
{
  {
    init_simple_test("aBFu7s_S_BFu1ll");
    static STRUCT_IF_C aBFu7s_S_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_S_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu1ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "aBFu7s_S_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu1ll, aBFu7s_S_BFu1ll)
//============================================================================



static void Test_aBFu7s_S_BFu1s()
{
  {
    init_simple_test("aBFu7s_S_BFu1s");
    static STRUCT_IF_C aBFu7s_S_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_S_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu1s.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "aBFu7s_S_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu1s, aBFu7s_S_BFu1s)
//============================================================================



static void Test_aBFu7s_S_BFu31i()
{
  {
    init_simple_test("aBFu7s_S_BFu31i");
    static STRUCT_IF_C aBFu7s_S_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_S_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu31i.v2");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "aBFu7s_S_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "aBFu7s_S_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu31i, aBFu7s_S_BFu31i)
//============================================================================



static void Test_aBFu7s_S_BFu31ll()
{
  {
    init_simple_test("aBFu7s_S_BFu31ll");
    static STRUCT_IF_C aBFu7s_S_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_S_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu31ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "aBFu7s_S_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "aBFu7s_S_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu31ll, aBFu7s_S_BFu31ll)
//============================================================================



static void Test_aBFu7s_S_BFu32i()
{
  {
    init_simple_test("aBFu7s_S_BFu32i");
    static STRUCT_IF_C aBFu7s_S_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_S_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu32i.v2");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "aBFu7s_S_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "aBFu7s_S_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu32i, aBFu7s_S_BFu32i)
//============================================================================



static void Test_aBFu7s_S_BFu32ll()
{
  {
    init_simple_test("aBFu7s_S_BFu32ll");
    static STRUCT_IF_C aBFu7s_S_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_S_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu32ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "aBFu7s_S_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "aBFu7s_S_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu32ll, aBFu7s_S_BFu32ll)
//============================================================================



static void Test_aBFu7s_S_BFu33()
{
  {
    init_simple_test("aBFu7s_S_BFu33");
    static STRUCT_IF_C aBFu7s_S_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7s_S_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu33.v2");
    set_bf_and_test(lv, v3, 3, 0, 33, 1, "aBFu7s_S_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, hide_ull(1LL<<32), "aBFu7s_S_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu33, aBFu7s_S_BFu33)
//============================================================================



static void Test_aBFu7s_S_BFu7c()
{
  {
    init_simple_test("aBFu7s_S_BFu7c");
    static STRUCT_IF_C aBFu7s_S_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_S_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu7c.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "aBFu7s_S_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu7c, aBFu7s_S_BFu7c)
//============================================================================



static void Test_aBFu7s_S_BFu7i()
{
  {
    init_simple_test("aBFu7s_S_BFu7i");
    static STRUCT_IF_C aBFu7s_S_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_S_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu7i.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "aBFu7s_S_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu7i, aBFu7s_S_BFu7i)
//============================================================================



static void Test_aBFu7s_S_BFu7ll()
{
  {
    init_simple_test("aBFu7s_S_BFu7ll");
    static STRUCT_IF_C aBFu7s_S_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_S_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu7ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "aBFu7s_S_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu7ll, aBFu7s_S_BFu7ll)
//============================================================================



static void Test_aBFu7s_S_BFu7s()
{
  {
    init_simple_test("aBFu7s_S_BFu7s");
    static STRUCT_IF_C aBFu7s_S_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_S_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu7s.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "aBFu7s_S_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu7s, aBFu7s_S_BFu7s)
//============================================================================



static void Test_aBFu7s_S_BFu8c()
{
  {
    init_simple_test("aBFu7s_S_BFu8c");
    static STRUCT_IF_C aBFu7s_S_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_S_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu8c.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7s_S_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7s_S_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu8c, aBFu7s_S_BFu8c)
//============================================================================



static void Test_aBFu7s_S_BFu8i()
{
  {
    init_simple_test("aBFu7s_S_BFu8i");
    static STRUCT_IF_C aBFu7s_S_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_S_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu8i.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7s_S_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7s_S_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu8i, aBFu7s_S_BFu8i)
//============================================================================



static void Test_aBFu7s_S_BFu8ll()
{
  {
    init_simple_test("aBFu7s_S_BFu8ll");
    static STRUCT_IF_C aBFu7s_S_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_S_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu8ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7s_S_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7s_S_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu8ll, aBFu7s_S_BFu8ll)
//============================================================================



static void Test_aBFu7s_S_BFu8s()
{
  {
    init_simple_test("aBFu7s_S_BFu8s");
    static STRUCT_IF_C aBFu7s_S_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_S_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu8s.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7s_S_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7s_S_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu8s, aBFu7s_S_BFu8s)
//============================================================================



static void Test_aBFu7s_S_BFu9i()
{
  {
    init_simple_test("aBFu7s_S_BFu9i");
    static STRUCT_IF_C aBFu7s_S_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_S_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu9i.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7s_S_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7s_S_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu9i, aBFu7s_S_BFu9i)
//============================================================================



static void Test_aBFu7s_S_BFu9ll()
{
  {
    init_simple_test("aBFu7s_S_BFu9ll");
    static STRUCT_IF_C aBFu7s_S_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_S_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu9ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7s_S_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7s_S_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu9ll, aBFu7s_S_BFu9ll)
//============================================================================



static void Test_aBFu7s_S_BFu9s()
{
  {
    init_simple_test("aBFu7s_S_BFu9s");
    static STRUCT_IF_C aBFu7s_S_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_S_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7s_S_BFu9s.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7s_S_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7s_S_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_BFu9s, aBFu7s_S_BFu9s)
//============================================================================



static void Test_aBFu7s_S_C()
{
  {
    init_simple_test("aBFu7s_S_C");
    static STRUCT_IF_C aBFu7s_S_C lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_S_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_C");
    check_field_offset(lv, v2, 1, "aBFu7s_S_C.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_S_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_C, aBFu7s_S_C)
//============================================================================



static void Test_aBFu7s_S_D()
{
  {
    init_simple_test("aBFu7s_S_D");
    static STRUCT_IF_C aBFu7s_S_D lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_S_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_D");
    check_field_offset(lv, v2, 1, "aBFu7s_S_D.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_S_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_D, aBFu7s_S_D)
//============================================================================



static void Test_aBFu7s_S_F()
{
  {
    init_simple_test("aBFu7s_S_F");
    static STRUCT_IF_C aBFu7s_S_F lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_S_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_F");
    check_field_offset(lv, v2, 1, "aBFu7s_S_F.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_S_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_F, aBFu7s_S_F)
//============================================================================



static void Test_aBFu7s_S_I()
{
  {
    init_simple_test("aBFu7s_S_I");
    static STRUCT_IF_C aBFu7s_S_I lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_S_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_I");
    check_field_offset(lv, v2, 1, "aBFu7s_S_I.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_S_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_I, aBFu7s_S_I)
//============================================================================



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



static void Test_aBFu7s_S_L()
{
  {
    init_simple_test("aBFu7s_S_L");
    static STRUCT_IF_C aBFu7s_S_L lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_S_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_L");
    check_field_offset(lv, v2, 1, "aBFu7s_S_L.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_S_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_L, aBFu7s_S_L)
//============================================================================



static void Test_aBFu7s_S_S()
{
  {
    init_simple_test("aBFu7s_S_S");
    static STRUCT_IF_C aBFu7s_S_S lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_S_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_S");
    check_field_offset(lv, v2, 1, "aBFu7s_S_S.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_S_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_S, aBFu7s_S_S)
//============================================================================



static void Test_aBFu7s_S_Uc()
{
  {
    init_simple_test("aBFu7s_S_Uc");
    static STRUCT_IF_C aBFu7s_S_Uc lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_S_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_Uc");
    check_field_offset(lv, v2, 1, "aBFu7s_S_Uc.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_S_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_Uc, aBFu7s_S_Uc)
//============================================================================



static void Test_aBFu7s_S_Ui()
{
  {
    init_simple_test("aBFu7s_S_Ui");
    static STRUCT_IF_C aBFu7s_S_Ui lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_S_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_Ui");
    check_field_offset(lv, v2, 1, "aBFu7s_S_Ui.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_S_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_Ui, aBFu7s_S_Ui)
//============================================================================



static void Test_aBFu7s_S_Ul()
{
  {
    init_simple_test("aBFu7s_S_Ul");
    static STRUCT_IF_C aBFu7s_S_Ul lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_S_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_Ul");
    check_field_offset(lv, v2, 1, "aBFu7s_S_Ul.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_S_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_Ul, aBFu7s_S_Ul)
//============================================================================



static void Test_aBFu7s_S_Us()
{
  {
    init_simple_test("aBFu7s_S_Us");
    static STRUCT_IF_C aBFu7s_S_Us lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_S_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_S_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_S_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_S_Us");
    check_field_offset(lv, v2, 1, "aBFu7s_S_Us.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_S_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_S_Us, aBFu7s_S_Us)
//============================================================================



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



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



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



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



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



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



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



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



static void Test_aBFu7s_Uc_BFu17i()
{
  {
    init_simple_test("aBFu7s_Uc_BFu17i");
    static STRUCT_IF_C aBFu7s_Uc_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_Uc_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu17i.v2");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7s_Uc_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7s_Uc_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu17i, aBFu7s_Uc_BFu17i)
//============================================================================



static void Test_aBFu7s_Uc_BFu17ll()
{
  {
    init_simple_test("aBFu7s_Uc_BFu17ll");
    static STRUCT_IF_C aBFu7s_Uc_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_Uc_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu17ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "aBFu7s_Uc_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "aBFu7s_Uc_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu17ll, aBFu7s_Uc_BFu17ll)
//============================================================================



static void Test_aBFu7s_Uc_BFu1c()
{
  {
    init_simple_test("aBFu7s_Uc_BFu1c");
    static STRUCT_IF_C aBFu7s_Uc_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_Uc_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu1c.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_Uc_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu1c, aBFu7s_Uc_BFu1c)
//============================================================================



static void Test_aBFu7s_Uc_BFu1i()
{
  {
    init_simple_test("aBFu7s_Uc_BFu1i");
    static STRUCT_IF_C aBFu7s_Uc_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_Uc_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu1i.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_Uc_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu1i, aBFu7s_Uc_BFu1i)
//============================================================================



static void Test_aBFu7s_Uc_BFu1ll()
{
  {
    init_simple_test("aBFu7s_Uc_BFu1ll");
    static STRUCT_IF_C aBFu7s_Uc_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_Uc_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu1ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_Uc_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu1ll, aBFu7s_Uc_BFu1ll)
//============================================================================



static void Test_aBFu7s_Uc_BFu1s()
{
  {
    init_simple_test("aBFu7s_Uc_BFu1s");
    static STRUCT_IF_C aBFu7s_Uc_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_Uc_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu1s.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "aBFu7s_Uc_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu1s, aBFu7s_Uc_BFu1s)
//============================================================================



static void Test_aBFu7s_Uc_BFu31i()
{
  {
    init_simple_test("aBFu7s_Uc_BFu31i");
    static STRUCT_IF_C aBFu7s_Uc_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Uc_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu31i.v2");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7s_Uc_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7s_Uc_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu31i, aBFu7s_Uc_BFu31i)
//============================================================================



static void Test_aBFu7s_Uc_BFu31ll()
{
  {
    init_simple_test("aBFu7s_Uc_BFu31ll");
    static STRUCT_IF_C aBFu7s_Uc_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Uc_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu31ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "aBFu7s_Uc_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "aBFu7s_Uc_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu31ll, aBFu7s_Uc_BFu31ll)
//============================================================================



static void Test_aBFu7s_Uc_BFu32i()
{
  {
    init_simple_test("aBFu7s_Uc_BFu32i");
    static STRUCT_IF_C aBFu7s_Uc_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Uc_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu32i.v2");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7s_Uc_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7s_Uc_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu32i, aBFu7s_Uc_BFu32i)
//============================================================================



static void Test_aBFu7s_Uc_BFu32ll()
{
  {
    init_simple_test("aBFu7s_Uc_BFu32ll");
    static STRUCT_IF_C aBFu7s_Uc_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Uc_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu32ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "aBFu7s_Uc_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "aBFu7s_Uc_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu32ll, aBFu7s_Uc_BFu32ll)
//============================================================================



static void Test_aBFu7s_Uc_BFu33()
{
  {
    init_simple_test("aBFu7s_Uc_BFu33");
    static STRUCT_IF_C aBFu7s_Uc_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Uc_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu33.v2");
    set_bf_and_test(lv, v3, 2, 0, 33, 1, "aBFu7s_Uc_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, hide_ull(1LL<<32), "aBFu7s_Uc_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu33, aBFu7s_Uc_BFu33)
//============================================================================



static void Test_aBFu7s_Uc_BFu7c()
{
  {
    init_simple_test("aBFu7s_Uc_BFu7c");
    static STRUCT_IF_C aBFu7s_Uc_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_Uc_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu7c.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_Uc_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu7c, aBFu7s_Uc_BFu7c)
//============================================================================



static void Test_aBFu7s_Uc_BFu7i()
{
  {
    init_simple_test("aBFu7s_Uc_BFu7i");
    static STRUCT_IF_C aBFu7s_Uc_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_Uc_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu7i.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_Uc_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu7i, aBFu7s_Uc_BFu7i)
//============================================================================



static void Test_aBFu7s_Uc_BFu7ll()
{
  {
    init_simple_test("aBFu7s_Uc_BFu7ll");
    static STRUCT_IF_C aBFu7s_Uc_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_Uc_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu7ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_Uc_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu7ll, aBFu7s_Uc_BFu7ll)
//============================================================================



static void Test_aBFu7s_Uc_BFu7s()
{
  {
    init_simple_test("aBFu7s_Uc_BFu7s");
    static STRUCT_IF_C aBFu7s_Uc_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_Uc_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu7s.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "aBFu7s_Uc_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu7s, aBFu7s_Uc_BFu7s)
//============================================================================



static void Test_aBFu7s_Uc_BFu8c()
{
  {
    init_simple_test("aBFu7s_Uc_BFu8c");
    static STRUCT_IF_C aBFu7s_Uc_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_Uc_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu8c.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_Uc_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_Uc_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu8c, aBFu7s_Uc_BFu8c)
//============================================================================



static void Test_aBFu7s_Uc_BFu8i()
{
  {
    init_simple_test("aBFu7s_Uc_BFu8i");
    static STRUCT_IF_C aBFu7s_Uc_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_Uc_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu8i.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_Uc_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_Uc_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu8i, aBFu7s_Uc_BFu8i)
//============================================================================



static void Test_aBFu7s_Uc_BFu8ll()
{
  {
    init_simple_test("aBFu7s_Uc_BFu8ll");
    static STRUCT_IF_C aBFu7s_Uc_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_Uc_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu8ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_Uc_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_Uc_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu8ll, aBFu7s_Uc_BFu8ll)
//============================================================================



static void Test_aBFu7s_Uc_BFu8s()
{
  {
    init_simple_test("aBFu7s_Uc_BFu8s");
    static STRUCT_IF_C aBFu7s_Uc_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_Uc_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu8s.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu7s_Uc_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu7s_Uc_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu8s, aBFu7s_Uc_BFu8s)
//============================================================================



static void Test_aBFu7s_Uc_BFu9i()
{
  {
    init_simple_test("aBFu7s_Uc_BFu9i");
    static STRUCT_IF_C aBFu7s_Uc_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Uc_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu9i.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7s_Uc_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7s_Uc_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu9i, aBFu7s_Uc_BFu9i)
//============================================================================



static void Test_aBFu7s_Uc_BFu9ll()
{
  {
    init_simple_test("aBFu7s_Uc_BFu9ll");
    static STRUCT_IF_C aBFu7s_Uc_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Uc_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu9ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7s_Uc_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7s_Uc_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu9ll, aBFu7s_Uc_BFu9ll)
//============================================================================



static void Test_aBFu7s_Uc_BFu9s()
{
  {
    init_simple_test("aBFu7s_Uc_BFu9s");
    static STRUCT_IF_C aBFu7s_Uc_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Uc_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_BFu9s.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "aBFu7s_Uc_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "aBFu7s_Uc_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_BFu9s, aBFu7s_Uc_BFu9s)
//============================================================================



static void Test_aBFu7s_Uc_C()
{
  {
    init_simple_test("aBFu7s_Uc_C");
    static STRUCT_IF_C aBFu7s_Uc_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_Uc_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_C");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_C.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_Uc_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_C, aBFu7s_Uc_C)
//============================================================================



static void Test_aBFu7s_Uc_D()
{
  {
    init_simple_test("aBFu7s_Uc_D");
    static STRUCT_IF_C aBFu7s_Uc_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Uc_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_D");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_D.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_Uc_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_D, aBFu7s_Uc_D)
//============================================================================



static void Test_aBFu7s_Uc_F()
{
  {
    init_simple_test("aBFu7s_Uc_F");
    static STRUCT_IF_C aBFu7s_Uc_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Uc_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_F");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_F.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_Uc_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_F, aBFu7s_Uc_F)
//============================================================================



static void Test_aBFu7s_Uc_I()
{
  {
    init_simple_test("aBFu7s_Uc_I");
    static STRUCT_IF_C aBFu7s_Uc_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Uc_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_I");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_I.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_Uc_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_I, aBFu7s_Uc_I)
//============================================================================



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



static void Test_aBFu7s_Uc_L()
{
  {
    init_simple_test("aBFu7s_Uc_L");
    static STRUCT_IF_C aBFu7s_Uc_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Uc_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_L");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_L.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_Uc_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_L, aBFu7s_Uc_L)
//============================================================================



static void Test_aBFu7s_Uc_S()
{
  {
    init_simple_test("aBFu7s_Uc_S");
    static STRUCT_IF_C aBFu7s_Uc_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Uc_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_S");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_S.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_Uc_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_S, aBFu7s_Uc_S)
//============================================================================



static void Test_aBFu7s_Uc_Uc()
{
  {
    init_simple_test("aBFu7s_Uc_Uc");
    static STRUCT_IF_C aBFu7s_Uc_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu7s_Uc_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_Uc");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_Uc.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_Uc_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_Uc, aBFu7s_Uc_Uc)
//============================================================================



static void Test_aBFu7s_Uc_Ui()
{
  {
    init_simple_test("aBFu7s_Uc_Ui");
    static STRUCT_IF_C aBFu7s_Uc_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Uc_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_Ui");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_Ui.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_Uc_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_Ui, aBFu7s_Uc_Ui)
//============================================================================



static void Test_aBFu7s_Uc_Ul()
{
  {
    init_simple_test("aBFu7s_Uc_Ul");
    static STRUCT_IF_C aBFu7s_Uc_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Uc_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_Ul");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_Ul.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_Uc_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_Ul, aBFu7s_Uc_Ul)
//============================================================================



static void Test_aBFu7s_Uc_Us()
{
  {
    init_simple_test("aBFu7s_Uc_Us");
    static STRUCT_IF_C aBFu7s_Uc_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Uc_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Uc_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Uc_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Uc_Us");
    check_field_offset(lv, v2, 1, "aBFu7s_Uc_Us.v2");
    check_field_offset(lv, v3, 2, "aBFu7s_Uc_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Uc_Us, aBFu7s_Uc_Us)
//============================================================================



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



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



static void Test_aBFu7s_Ui_BFu15i()
{
  {
    init_simple_test("aBFu7s_Ui_BFu15i");
    static STRUCT_IF_C aBFu7s_Ui_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Ui_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu15i.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7s_Ui_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7s_Ui_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu15i, aBFu7s_Ui_BFu15i)
//============================================================================



static void Test_aBFu7s_Ui_BFu15ll()
{
  {
    init_simple_test("aBFu7s_Ui_BFu15ll");
    static STRUCT_IF_C aBFu7s_Ui_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Ui_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu15ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7s_Ui_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7s_Ui_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu15ll, aBFu7s_Ui_BFu15ll)
//============================================================================



static void Test_aBFu7s_Ui_BFu15s()
{
  {
    init_simple_test("aBFu7s_Ui_BFu15s");
    static STRUCT_IF_C aBFu7s_Ui_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Ui_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu15s.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "aBFu7s_Ui_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "aBFu7s_Ui_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu15s, aBFu7s_Ui_BFu15s)
//============================================================================



static void Test_aBFu7s_Ui_BFu16i()
{
  {
    init_simple_test("aBFu7s_Ui_BFu16i");
    static STRUCT_IF_C aBFu7s_Ui_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Ui_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu16i.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7s_Ui_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7s_Ui_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu16i, aBFu7s_Ui_BFu16i)
//============================================================================



static void Test_aBFu7s_Ui_BFu16ll()
{
  {
    init_simple_test("aBFu7s_Ui_BFu16ll");
    static STRUCT_IF_C aBFu7s_Ui_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Ui_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu16ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7s_Ui_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7s_Ui_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu16ll, aBFu7s_Ui_BFu16ll)
//============================================================================



static void Test_aBFu7s_Ui_BFu16s()
{
  {
    init_simple_test("aBFu7s_Ui_BFu16s");
    static STRUCT_IF_C aBFu7s_Ui_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Ui_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu16s.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "aBFu7s_Ui_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "aBFu7s_Ui_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu16s, aBFu7s_Ui_BFu16s)
//============================================================================



static void Test_aBFu7s_Ui_BFu17i()
{
  {
    init_simple_test("aBFu7s_Ui_BFu17i");
    static STRUCT_IF_C aBFu7s_Ui_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7s_Ui_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu17i.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu7s_Ui_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu7s_Ui_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu17i, aBFu7s_Ui_BFu17i)
//============================================================================



static void Test_aBFu7s_Ui_BFu17ll()
{
  {
    init_simple_test("aBFu7s_Ui_BFu17ll");
    static STRUCT_IF_C aBFu7s_Ui_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7s_Ui_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu17ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "aBFu7s_Ui_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "aBFu7s_Ui_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu17ll, aBFu7s_Ui_BFu17ll)
//============================================================================



static void Test_aBFu7s_Ui_BFu1c()
{
  {
    init_simple_test("aBFu7s_Ui_BFu1c");
    static STRUCT_IF_C aBFu7s_Ui_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Ui_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu1c.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7s_Ui_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu1c, aBFu7s_Ui_BFu1c)
//============================================================================



static void Test_aBFu7s_Ui_BFu1i()
{
  {
    init_simple_test("aBFu7s_Ui_BFu1i");
    static STRUCT_IF_C aBFu7s_Ui_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Ui_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu1i.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7s_Ui_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu1i, aBFu7s_Ui_BFu1i)
//============================================================================



static void Test_aBFu7s_Ui_BFu1ll()
{
  {
    init_simple_test("aBFu7s_Ui_BFu1ll");
    static STRUCT_IF_C aBFu7s_Ui_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Ui_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu1ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7s_Ui_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu1ll, aBFu7s_Ui_BFu1ll)
//============================================================================



static void Test_aBFu7s_Ui_BFu1s()
{
  {
    init_simple_test("aBFu7s_Ui_BFu1s");
    static STRUCT_IF_C aBFu7s_Ui_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Ui_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu1s.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "aBFu7s_Ui_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu1s, aBFu7s_Ui_BFu1s)
//============================================================================



static void Test_aBFu7s_Ui_BFu31i()
{
  {
    init_simple_test("aBFu7s_Ui_BFu31i");
    static STRUCT_IF_C aBFu7s_Ui_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_Ui_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu31i.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu7s_Ui_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu7s_Ui_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu31i, aBFu7s_Ui_BFu31i)
//============================================================================



static void Test_aBFu7s_Ui_BFu31ll()
{
  {
    init_simple_test("aBFu7s_Ui_BFu31ll");
    static STRUCT_IF_C aBFu7s_Ui_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_Ui_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu31ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "aBFu7s_Ui_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "aBFu7s_Ui_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu31ll, aBFu7s_Ui_BFu31ll)
//============================================================================



static void Test_aBFu7s_Ui_BFu32i()
{
  {
    init_simple_test("aBFu7s_Ui_BFu32i");
    static STRUCT_IF_C aBFu7s_Ui_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_Ui_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu32i.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu7s_Ui_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu7s_Ui_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu32i, aBFu7s_Ui_BFu32i)
//============================================================================



static void Test_aBFu7s_Ui_BFu32ll()
{
  {
    init_simple_test("aBFu7s_Ui_BFu32ll");
    static STRUCT_IF_C aBFu7s_Ui_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_Ui_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu32ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "aBFu7s_Ui_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "aBFu7s_Ui_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu32ll, aBFu7s_Ui_BFu32ll)
//============================================================================



static void Test_aBFu7s_Ui_BFu33()
{
  {
    init_simple_test("aBFu7s_Ui_BFu33");
    static STRUCT_IF_C aBFu7s_Ui_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Ui_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu33.v2");
    set_bf_and_test(lv, v3, 5, 0, 33, 1, "aBFu7s_Ui_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, hide_ull(1LL<<32), "aBFu7s_Ui_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu33, aBFu7s_Ui_BFu33)
//============================================================================



static void Test_aBFu7s_Ui_BFu7c()
{
  {
    init_simple_test("aBFu7s_Ui_BFu7c");
    static STRUCT_IF_C aBFu7s_Ui_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Ui_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu7c.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7s_Ui_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu7c, aBFu7s_Ui_BFu7c)
//============================================================================



static void Test_aBFu7s_Ui_BFu7i()
{
  {
    init_simple_test("aBFu7s_Ui_BFu7i");
    static STRUCT_IF_C aBFu7s_Ui_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Ui_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu7i.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7s_Ui_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu7i, aBFu7s_Ui_BFu7i)
//============================================================================



static void Test_aBFu7s_Ui_BFu7ll()
{
  {
    init_simple_test("aBFu7s_Ui_BFu7ll");
    static STRUCT_IF_C aBFu7s_Ui_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Ui_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu7ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7s_Ui_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu7ll, aBFu7s_Ui_BFu7ll)
//============================================================================



static void Test_aBFu7s_Ui_BFu7s()
{
  {
    init_simple_test("aBFu7s_Ui_BFu7s");
    static STRUCT_IF_C aBFu7s_Ui_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Ui_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu7s.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "aBFu7s_Ui_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu7s, aBFu7s_Ui_BFu7s)
//============================================================================



static void Test_aBFu7s_Ui_BFu8c()
{
  {
    init_simple_test("aBFu7s_Ui_BFu8c");
    static STRUCT_IF_C aBFu7s_Ui_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Ui_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu8c.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7s_Ui_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7s_Ui_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu8c, aBFu7s_Ui_BFu8c)
//============================================================================



static void Test_aBFu7s_Ui_BFu8i()
{
  {
    init_simple_test("aBFu7s_Ui_BFu8i");
    static STRUCT_IF_C aBFu7s_Ui_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Ui_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu8i.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7s_Ui_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7s_Ui_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu8i, aBFu7s_Ui_BFu8i)
//============================================================================



static void Test_aBFu7s_Ui_BFu8ll()
{
  {
    init_simple_test("aBFu7s_Ui_BFu8ll");
    static STRUCT_IF_C aBFu7s_Ui_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Ui_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu8ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7s_Ui_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7s_Ui_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu8ll, aBFu7s_Ui_BFu8ll)
//============================================================================



static void Test_aBFu7s_Ui_BFu8s()
{
  {
    init_simple_test("aBFu7s_Ui_BFu8s");
    static STRUCT_IF_C aBFu7s_Ui_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Ui_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu8s.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "aBFu7s_Ui_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "aBFu7s_Ui_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu8s, aBFu7s_Ui_BFu8s)
//============================================================================



static void Test_aBFu7s_Ui_BFu9i()
{
  {
    init_simple_test("aBFu7s_Ui_BFu9i");
    static STRUCT_IF_C aBFu7s_Ui_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Ui_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu9i.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7s_Ui_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7s_Ui_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu9i, aBFu7s_Ui_BFu9i)
//============================================================================



static void Test_aBFu7s_Ui_BFu9ll()
{
  {
    init_simple_test("aBFu7s_Ui_BFu9ll");
    static STRUCT_IF_C aBFu7s_Ui_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Ui_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu9ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7s_Ui_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7s_Ui_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu9ll, aBFu7s_Ui_BFu9ll)
//============================================================================



static void Test_aBFu7s_Ui_BFu9s()
{
  {
    init_simple_test("aBFu7s_Ui_BFu9s");
    static STRUCT_IF_C aBFu7s_Ui_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Ui_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_BFu9s.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "aBFu7s_Ui_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "aBFu7s_Ui_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_BFu9s, aBFu7s_Ui_BFu9s)
//============================================================================



static void Test_aBFu7s_Ui_C()
{
  {
    init_simple_test("aBFu7s_Ui_C");
    static STRUCT_IF_C aBFu7s_Ui_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Ui_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_C");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_C.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_Ui_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_C, aBFu7s_Ui_C)
//============================================================================



static void Test_aBFu7s_Ui_D()
{
  {
    init_simple_test("aBFu7s_Ui_D");
    static STRUCT_IF_C aBFu7s_Ui_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_Ui_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_D");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_D.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_Ui_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_D, aBFu7s_Ui_D)
//============================================================================



static void Test_aBFu7s_Ui_F()
{
  {
    init_simple_test("aBFu7s_Ui_F");
    static STRUCT_IF_C aBFu7s_Ui_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_Ui_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_F");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_F.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_Ui_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_F, aBFu7s_Ui_F)
//============================================================================



static void Test_aBFu7s_Ui_I()
{
  {
    init_simple_test("aBFu7s_Ui_I");
    static STRUCT_IF_C aBFu7s_Ui_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_Ui_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_I");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_I.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_Ui_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_I, aBFu7s_Ui_I)
//============================================================================



static void Test_aBFu7s_Ui_Ip()
{
  {
    init_simple_test("aBFu7s_Ui_Ip");
    static STRUCT_IF_C aBFu7s_Ui_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_Ui_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_Ip");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_Ip.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_Ui_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_Ip, aBFu7s_Ui_Ip)
//============================================================================



static void Test_aBFu7s_Ui_L()
{
  {
    init_simple_test("aBFu7s_Ui_L");
    static STRUCT_IF_C aBFu7s_Ui_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_Ui_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_L");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_L.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_Ui_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_L, aBFu7s_Ui_L)
//============================================================================



static void Test_aBFu7s_Ui_S()
{
  {
    init_simple_test("aBFu7s_Ui_S");
    static STRUCT_IF_C aBFu7s_Ui_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Ui_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_S");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_S.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_Ui_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_S, aBFu7s_Ui_S)
//============================================================================



static void Test_aBFu7s_Ui_Uc()
{
  {
    init_simple_test("aBFu7s_Ui_Uc");
    static STRUCT_IF_C aBFu7s_Ui_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu7s_Ui_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_Uc");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_Uc.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_Ui_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_Uc, aBFu7s_Ui_Uc)
//============================================================================



static void Test_aBFu7s_Ui_Ui()
{
  {
    init_simple_test("aBFu7s_Ui_Ui");
    static STRUCT_IF_C aBFu7s_Ui_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu7s_Ui_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_Ui");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_Ui.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_Ui_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_Ui, aBFu7s_Ui_Ui)
//============================================================================



static void Test_aBFu7s_Ui_Ul()
{
  {
    init_simple_test("aBFu7s_Ui_Ul");
    static STRUCT_IF_C aBFu7s_Ui_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_Ui_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_Ul");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_Ul.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_Ui_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_Ul, aBFu7s_Ui_Ul)
//============================================================================



static void Test_aBFu7s_Ui_Us()
{
  {
    init_simple_test("aBFu7s_Ui_Us");
    static STRUCT_IF_C aBFu7s_Ui_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Ui_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_Us");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_Us.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_Ui_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_Us, aBFu7s_Ui_Us)
//============================================================================



static void Test_aBFu7s_Ui_Vp()
{
  {
    init_simple_test("aBFu7s_Ui_Vp");
    static STRUCT_IF_C aBFu7s_Ui_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_Ui_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ui_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ui_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ui_Vp");
    check_field_offset(lv, v2, 1, "aBFu7s_Ui_Vp.v2");
    check_field_offset(lv, v3, 5, "aBFu7s_Ui_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ui_Vp, aBFu7s_Ui_Vp)
//============================================================================



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



static void Test_aBFu7s_Ul_BFu15i()
{
  {
    init_simple_test("aBFu7s_Ul_BFu15i");
    static STRUCT_IF_C aBFu7s_Ul_BFu15i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_Ul_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu15i.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7s_Ul_BFu15i");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7s_Ul_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu15i, aBFu7s_Ul_BFu15i)
//============================================================================



static void Test_aBFu7s_Ul_BFu15ll()
{
  {
    init_simple_test("aBFu7s_Ul_BFu15ll");
    static STRUCT_IF_C aBFu7s_Ul_BFu15ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_Ul_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu15ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7s_Ul_BFu15ll");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7s_Ul_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu15ll, aBFu7s_Ul_BFu15ll)
//============================================================================



static void Test_aBFu7s_Ul_BFu15s()
{
  {
    init_simple_test("aBFu7s_Ul_BFu15s");
    static STRUCT_IF_C aBFu7s_Ul_BFu15s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_Ul_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu15s.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "aBFu7s_Ul_BFu15s");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "aBFu7s_Ul_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu15s, aBFu7s_Ul_BFu15s)
//============================================================================



static void Test_aBFu7s_Ul_BFu16i()
{
  {
    init_simple_test("aBFu7s_Ul_BFu16i");
    static STRUCT_IF_C aBFu7s_Ul_BFu16i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_Ul_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu16i.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7s_Ul_BFu16i");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7s_Ul_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu16i, aBFu7s_Ul_BFu16i)
//============================================================================



static void Test_aBFu7s_Ul_BFu16ll()
{
  {
    init_simple_test("aBFu7s_Ul_BFu16ll");
    static STRUCT_IF_C aBFu7s_Ul_BFu16ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_Ul_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu16ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7s_Ul_BFu16ll");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7s_Ul_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu16ll, aBFu7s_Ul_BFu16ll)
//============================================================================



static void Test_aBFu7s_Ul_BFu16s()
{
  {
    init_simple_test("aBFu7s_Ul_BFu16s");
    static STRUCT_IF_C aBFu7s_Ul_BFu16s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_Ul_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu16s.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "aBFu7s_Ul_BFu16s");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "aBFu7s_Ul_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu16s, aBFu7s_Ul_BFu16s)
//============================================================================



static void Test_aBFu7s_Ul_BFu17i()
{
  {
    init_simple_test("aBFu7s_Ul_BFu17i");
    static STRUCT_IF_C aBFu7s_Ul_BFu17i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu7s_Ul_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu17i.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu7s_Ul_BFu17i");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu7s_Ul_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu17i, aBFu7s_Ul_BFu17i)
//============================================================================



static void Test_aBFu7s_Ul_BFu17ll()
{
  {
    init_simple_test("aBFu7s_Ul_BFu17ll");
    static STRUCT_IF_C aBFu7s_Ul_BFu17ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu7s_Ul_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu17ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "aBFu7s_Ul_BFu17ll");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "aBFu7s_Ul_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu17ll, aBFu7s_Ul_BFu17ll)
//============================================================================



static void Test_aBFu7s_Ul_BFu1c()
{
  {
    init_simple_test("aBFu7s_Ul_BFu1c");
    static STRUCT_IF_C aBFu7s_Ul_BFu1c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Ul_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu1c.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7s_Ul_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu1c, aBFu7s_Ul_BFu1c)
//============================================================================



static void Test_aBFu7s_Ul_BFu1i()
{
  {
    init_simple_test("aBFu7s_Ul_BFu1i");
    static STRUCT_IF_C aBFu7s_Ul_BFu1i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Ul_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu1i.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7s_Ul_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu1i, aBFu7s_Ul_BFu1i)
//============================================================================



static void Test_aBFu7s_Ul_BFu1ll()
{
  {
    init_simple_test("aBFu7s_Ul_BFu1ll");
    static STRUCT_IF_C aBFu7s_Ul_BFu1ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Ul_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu1ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7s_Ul_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu1ll, aBFu7s_Ul_BFu1ll)
//============================================================================



static void Test_aBFu7s_Ul_BFu1s()
{
  {
    init_simple_test("aBFu7s_Ul_BFu1s");
    static STRUCT_IF_C aBFu7s_Ul_BFu1s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Ul_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu1s.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "aBFu7s_Ul_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu1s, aBFu7s_Ul_BFu1s)
//============================================================================



static void Test_aBFu7s_Ul_BFu31i()
{
  {
    init_simple_test("aBFu7s_Ul_BFu31i");
    static STRUCT_IF_C aBFu7s_Ul_BFu31i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_Ul_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu31i.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu7s_Ul_BFu31i");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu7s_Ul_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu31i, aBFu7s_Ul_BFu31i)
//============================================================================



static void Test_aBFu7s_Ul_BFu31ll()
{
  {
    init_simple_test("aBFu7s_Ul_BFu31ll");
    static STRUCT_IF_C aBFu7s_Ul_BFu31ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_Ul_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu31ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "aBFu7s_Ul_BFu31ll");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "aBFu7s_Ul_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu31ll, aBFu7s_Ul_BFu31ll)
//============================================================================



static void Test_aBFu7s_Ul_BFu32i()
{
  {
    init_simple_test("aBFu7s_Ul_BFu32i");
    static STRUCT_IF_C aBFu7s_Ul_BFu32i lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_Ul_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu32i.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu7s_Ul_BFu32i");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu7s_Ul_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu32i, aBFu7s_Ul_BFu32i)
//============================================================================



static void Test_aBFu7s_Ul_BFu32ll()
{
  {
    init_simple_test("aBFu7s_Ul_BFu32ll");
    static STRUCT_IF_C aBFu7s_Ul_BFu32ll lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_Ul_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu32ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "aBFu7s_Ul_BFu32ll");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "aBFu7s_Ul_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu32ll, aBFu7s_Ul_BFu32ll)
//============================================================================



static void Test_aBFu7s_Ul_BFu33()
{
  {
    init_simple_test("aBFu7s_Ul_BFu33");
    static STRUCT_IF_C aBFu7s_Ul_BFu33 lv;
    check2(sizeof(lv), 14, "sizeof(aBFu7s_Ul_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu33.v2");
    set_bf_and_test(lv, v3, 9, 0, 33, 1, "aBFu7s_Ul_BFu33");
    set_bf_and_test(lv, v3, 9, 0, 33, hide_ull(1LL<<32), "aBFu7s_Ul_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu33, aBFu7s_Ul_BFu33)
//============================================================================



static void Test_aBFu7s_Ul_BFu7c()
{
  {
    init_simple_test("aBFu7s_Ul_BFu7c");
    static STRUCT_IF_C aBFu7s_Ul_BFu7c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Ul_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu7c.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7s_Ul_BFu7c");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu7c, aBFu7s_Ul_BFu7c)
//============================================================================



static void Test_aBFu7s_Ul_BFu7i()
{
  {
    init_simple_test("aBFu7s_Ul_BFu7i");
    static STRUCT_IF_C aBFu7s_Ul_BFu7i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Ul_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu7i.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7s_Ul_BFu7i");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu7i, aBFu7s_Ul_BFu7i)
//============================================================================



static void Test_aBFu7s_Ul_BFu7ll()
{
  {
    init_simple_test("aBFu7s_Ul_BFu7ll");
    static STRUCT_IF_C aBFu7s_Ul_BFu7ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Ul_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu7ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7s_Ul_BFu7ll");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu7ll, aBFu7s_Ul_BFu7ll)
//============================================================================



static void Test_aBFu7s_Ul_BFu7s()
{
  {
    init_simple_test("aBFu7s_Ul_BFu7s");
    static STRUCT_IF_C aBFu7s_Ul_BFu7s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Ul_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu7s.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "aBFu7s_Ul_BFu7s");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu7s, aBFu7s_Ul_BFu7s)
//============================================================================



static void Test_aBFu7s_Ul_BFu8c()
{
  {
    init_simple_test("aBFu7s_Ul_BFu8c");
    static STRUCT_IF_C aBFu7s_Ul_BFu8c lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Ul_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu8c.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7s_Ul_BFu8c");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7s_Ul_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu8c, aBFu7s_Ul_BFu8c)
//============================================================================



static void Test_aBFu7s_Ul_BFu8i()
{
  {
    init_simple_test("aBFu7s_Ul_BFu8i");
    static STRUCT_IF_C aBFu7s_Ul_BFu8i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Ul_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu8i.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7s_Ul_BFu8i");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7s_Ul_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu8i, aBFu7s_Ul_BFu8i)
//============================================================================



static void Test_aBFu7s_Ul_BFu8ll()
{
  {
    init_simple_test("aBFu7s_Ul_BFu8ll");
    static STRUCT_IF_C aBFu7s_Ul_BFu8ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Ul_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu8ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7s_Ul_BFu8ll");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7s_Ul_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu8ll, aBFu7s_Ul_BFu8ll)
//============================================================================



static void Test_aBFu7s_Ul_BFu8s()
{
  {
    init_simple_test("aBFu7s_Ul_BFu8s");
    static STRUCT_IF_C aBFu7s_Ul_BFu8s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Ul_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu8s.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "aBFu7s_Ul_BFu8s");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "aBFu7s_Ul_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu8s, aBFu7s_Ul_BFu8s)
//============================================================================



static void Test_aBFu7s_Ul_BFu9i()
{
  {
    init_simple_test("aBFu7s_Ul_BFu9i");
    static STRUCT_IF_C aBFu7s_Ul_BFu9i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_Ul_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu9i.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7s_Ul_BFu9i");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7s_Ul_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu9i, aBFu7s_Ul_BFu9i)
//============================================================================



static void Test_aBFu7s_Ul_BFu9ll()
{
  {
    init_simple_test("aBFu7s_Ul_BFu9ll");
    static STRUCT_IF_C aBFu7s_Ul_BFu9ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_Ul_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu9ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7s_Ul_BFu9ll");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7s_Ul_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu9ll, aBFu7s_Ul_BFu9ll)
//============================================================================



static void Test_aBFu7s_Ul_BFu9s()
{
  {
    init_simple_test("aBFu7s_Ul_BFu9s");
    static STRUCT_IF_C aBFu7s_Ul_BFu9s lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_Ul_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_BFu9s.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "aBFu7s_Ul_BFu9s");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "aBFu7s_Ul_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_BFu9s, aBFu7s_Ul_BFu9s)
//============================================================================



static void Test_aBFu7s_Ul_C()
{
  {
    init_simple_test("aBFu7s_Ul_C");
    static STRUCT_IF_C aBFu7s_Ul_C lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Ul_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_C");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_C.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_Ul_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_C, aBFu7s_Ul_C)
//============================================================================



static void Test_aBFu7s_Ul_D()
{
  {
    init_simple_test("aBFu7s_Ul_D");
    static STRUCT_IF_C aBFu7s_Ul_D lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7s_Ul_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_D");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_D.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_Ul_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_D, aBFu7s_Ul_D)
//============================================================================



static void Test_aBFu7s_Ul_F()
{
  {
    init_simple_test("aBFu7s_Ul_F");
    static STRUCT_IF_C aBFu7s_Ul_F lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_Ul_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_F");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_F.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_Ul_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_F, aBFu7s_Ul_F)
//============================================================================



static void Test_aBFu7s_Ul_I()
{
  {
    init_simple_test("aBFu7s_Ul_I");
    static STRUCT_IF_C aBFu7s_Ul_I lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_Ul_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_I");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_I.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_Ul_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_I, aBFu7s_Ul_I)
//============================================================================



static void Test_aBFu7s_Ul_Ip()
{
  {
    init_simple_test("aBFu7s_Ul_Ip");
    static STRUCT_IF_C aBFu7s_Ul_Ip lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7s_Ul_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_Ip");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_Ip.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_Ul_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_Ip, aBFu7s_Ul_Ip)
//============================================================================



static void Test_aBFu7s_Ul_L()
{
  {
    init_simple_test("aBFu7s_Ul_L");
    static STRUCT_IF_C aBFu7s_Ul_L lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7s_Ul_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_L");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_L.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_Ul_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_L, aBFu7s_Ul_L)
//============================================================================



static void Test_aBFu7s_Ul_S()
{
  {
    init_simple_test("aBFu7s_Ul_S");
    static STRUCT_IF_C aBFu7s_Ul_S lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_Ul_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_S");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_S.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_Ul_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_S, aBFu7s_Ul_S)
//============================================================================



static void Test_aBFu7s_Ul_Uc()
{
  {
    init_simple_test("aBFu7s_Ul_Uc");
    static STRUCT_IF_C aBFu7s_Ul_Uc lv;
    check2(sizeof(lv), 10, "sizeof(aBFu7s_Ul_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_Uc");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_Uc.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_Ul_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_Uc, aBFu7s_Ul_Uc)
//============================================================================



static void Test_aBFu7s_Ul_Ui()
{
  {
    init_simple_test("aBFu7s_Ul_Ui");
    static STRUCT_IF_C aBFu7s_Ul_Ui lv;
    check2(sizeof(lv), 13, "sizeof(aBFu7s_Ul_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_Ui");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_Ui.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_Ul_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_Ui, aBFu7s_Ul_Ui)
//============================================================================



static void Test_aBFu7s_Ul_Ul()
{
  {
    init_simple_test("aBFu7s_Ul_Ul");
    static STRUCT_IF_C aBFu7s_Ul_Ul lv;
    check2(sizeof(lv), 17, "sizeof(aBFu7s_Ul_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_Ul");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_Ul.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_Ul_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_Ul, aBFu7s_Ul_Ul)
//============================================================================



static void Test_aBFu7s_Ul_Us()
{
  {
    init_simple_test("aBFu7s_Ul_Us");
    static STRUCT_IF_C aBFu7s_Ul_Us lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_Ul_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_Us");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_Us.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_Ul_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_Us, aBFu7s_Ul_Us)
//============================================================================



static void Test_aBFu7s_Ul_Vp()
{
  {
    init_simple_test("aBFu7s_Ul_Vp");
    static STRUCT_IF_C aBFu7s_Ul_Vp lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7s_Ul_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Ul_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Ul_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Ul_Vp");
    check_field_offset(lv, v2, 1, "aBFu7s_Ul_Vp.v2");
    check_field_offset(lv, v3, 9, "aBFu7s_Ul_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Ul_Vp, aBFu7s_Ul_Vp)
//============================================================================



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



static void Test_aBFu7s_Us_BFu15i()
{
  {
    init_simple_test("aBFu7s_Us_BFu15i");
    static STRUCT_IF_C aBFu7s_Us_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_Us_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu15i.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7s_Us_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7s_Us_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu15i, aBFu7s_Us_BFu15i)
//============================================================================



static void Test_aBFu7s_Us_BFu15ll()
{
  {
    init_simple_test("aBFu7s_Us_BFu15ll");
    static STRUCT_IF_C aBFu7s_Us_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_Us_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu15ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7s_Us_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7s_Us_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu15ll, aBFu7s_Us_BFu15ll)
//============================================================================



static void Test_aBFu7s_Us_BFu15s()
{
  {
    init_simple_test("aBFu7s_Us_BFu15s");
    static STRUCT_IF_C aBFu7s_Us_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_Us_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu15s.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "aBFu7s_Us_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "aBFu7s_Us_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu15s, aBFu7s_Us_BFu15s)
//============================================================================



static void Test_aBFu7s_Us_BFu16i()
{
  {
    init_simple_test("aBFu7s_Us_BFu16i");
    static STRUCT_IF_C aBFu7s_Us_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_Us_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu16i.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7s_Us_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7s_Us_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu16i, aBFu7s_Us_BFu16i)
//============================================================================



static void Test_aBFu7s_Us_BFu16ll()
{
  {
    init_simple_test("aBFu7s_Us_BFu16ll");
    static STRUCT_IF_C aBFu7s_Us_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_Us_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu16ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7s_Us_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7s_Us_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu16ll, aBFu7s_Us_BFu16ll)
//============================================================================



static void Test_aBFu7s_Us_BFu16s()
{
  {
    init_simple_test("aBFu7s_Us_BFu16s");
    static STRUCT_IF_C aBFu7s_Us_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_Us_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu16s.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "aBFu7s_Us_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "aBFu7s_Us_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu16s, aBFu7s_Us_BFu16s)
//============================================================================



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



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



static void Test_aBFu7s_Us_BFu1c()
{
  {
    init_simple_test("aBFu7s_Us_BFu1c");
    static STRUCT_IF_C aBFu7s_Us_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Us_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu1c.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "aBFu7s_Us_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu1c, aBFu7s_Us_BFu1c)
//============================================================================



static void Test_aBFu7s_Us_BFu1i()
{
  {
    init_simple_test("aBFu7s_Us_BFu1i");
    static STRUCT_IF_C aBFu7s_Us_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Us_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu1i.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "aBFu7s_Us_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu1i, aBFu7s_Us_BFu1i)
//============================================================================



static void Test_aBFu7s_Us_BFu1ll()
{
  {
    init_simple_test("aBFu7s_Us_BFu1ll");
    static STRUCT_IF_C aBFu7s_Us_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Us_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu1ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "aBFu7s_Us_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu1ll, aBFu7s_Us_BFu1ll)
//============================================================================



static void Test_aBFu7s_Us_BFu1s()
{
  {
    init_simple_test("aBFu7s_Us_BFu1s");
    static STRUCT_IF_C aBFu7s_Us_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Us_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu1s.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "aBFu7s_Us_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu1s, aBFu7s_Us_BFu1s)
//============================================================================



static void Test_aBFu7s_Us_BFu31i()
{
  {
    init_simple_test("aBFu7s_Us_BFu31i");
    static STRUCT_IF_C aBFu7s_Us_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Us_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu31i.v2");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "aBFu7s_Us_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "aBFu7s_Us_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu31i, aBFu7s_Us_BFu31i)
//============================================================================



static void Test_aBFu7s_Us_BFu31ll()
{
  {
    init_simple_test("aBFu7s_Us_BFu31ll");
    static STRUCT_IF_C aBFu7s_Us_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Us_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu31ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "aBFu7s_Us_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "aBFu7s_Us_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu31ll, aBFu7s_Us_BFu31ll)
//============================================================================



static void Test_aBFu7s_Us_BFu32i()
{
  {
    init_simple_test("aBFu7s_Us_BFu32i");
    static STRUCT_IF_C aBFu7s_Us_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Us_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu32i.v2");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "aBFu7s_Us_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "aBFu7s_Us_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu32i, aBFu7s_Us_BFu32i)
//============================================================================



static void Test_aBFu7s_Us_BFu32ll()
{
  {
    init_simple_test("aBFu7s_Us_BFu32ll");
    static STRUCT_IF_C aBFu7s_Us_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Us_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu32ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "aBFu7s_Us_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "aBFu7s_Us_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu32ll, aBFu7s_Us_BFu32ll)
//============================================================================



static void Test_aBFu7s_Us_BFu33()
{
  {
    init_simple_test("aBFu7s_Us_BFu33");
    static STRUCT_IF_C aBFu7s_Us_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(aBFu7s_Us_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu33.v2");
    set_bf_and_test(lv, v3, 3, 0, 33, 1, "aBFu7s_Us_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, hide_ull(1LL<<32), "aBFu7s_Us_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu33, aBFu7s_Us_BFu33)
//============================================================================



static void Test_aBFu7s_Us_BFu7c()
{
  {
    init_simple_test("aBFu7s_Us_BFu7c");
    static STRUCT_IF_C aBFu7s_Us_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Us_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu7c.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "aBFu7s_Us_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu7c, aBFu7s_Us_BFu7c)
//============================================================================



static void Test_aBFu7s_Us_BFu7i()
{
  {
    init_simple_test("aBFu7s_Us_BFu7i");
    static STRUCT_IF_C aBFu7s_Us_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Us_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu7i.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "aBFu7s_Us_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu7i, aBFu7s_Us_BFu7i)
//============================================================================



static void Test_aBFu7s_Us_BFu7ll()
{
  {
    init_simple_test("aBFu7s_Us_BFu7ll");
    static STRUCT_IF_C aBFu7s_Us_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Us_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu7ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "aBFu7s_Us_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu7ll, aBFu7s_Us_BFu7ll)
//============================================================================



static void Test_aBFu7s_Us_BFu7s()
{
  {
    init_simple_test("aBFu7s_Us_BFu7s");
    static STRUCT_IF_C aBFu7s_Us_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Us_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu7s.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "aBFu7s_Us_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu7s, aBFu7s_Us_BFu7s)
//============================================================================



static void Test_aBFu7s_Us_BFu8c()
{
  {
    init_simple_test("aBFu7s_Us_BFu8c");
    static STRUCT_IF_C aBFu7s_Us_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Us_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu8c.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7s_Us_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7s_Us_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu8c, aBFu7s_Us_BFu8c)
//============================================================================



static void Test_aBFu7s_Us_BFu8i()
{
  {
    init_simple_test("aBFu7s_Us_BFu8i");
    static STRUCT_IF_C aBFu7s_Us_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Us_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu8i.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7s_Us_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7s_Us_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu8i, aBFu7s_Us_BFu8i)
//============================================================================



static void Test_aBFu7s_Us_BFu8ll()
{
  {
    init_simple_test("aBFu7s_Us_BFu8ll");
    static STRUCT_IF_C aBFu7s_Us_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Us_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu8ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7s_Us_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7s_Us_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu8ll, aBFu7s_Us_BFu8ll)
//============================================================================



static void Test_aBFu7s_Us_BFu8s()
{
  {
    init_simple_test("aBFu7s_Us_BFu8s");
    static STRUCT_IF_C aBFu7s_Us_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Us_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu8s.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "aBFu7s_Us_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "aBFu7s_Us_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu8s, aBFu7s_Us_BFu8s)
//============================================================================



static void Test_aBFu7s_Us_BFu9i()
{
  {
    init_simple_test("aBFu7s_Us_BFu9i");
    static STRUCT_IF_C aBFu7s_Us_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_Us_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu9i.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7s_Us_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7s_Us_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu9i, aBFu7s_Us_BFu9i)
//============================================================================



static void Test_aBFu7s_Us_BFu9ll()
{
  {
    init_simple_test("aBFu7s_Us_BFu9ll");
    static STRUCT_IF_C aBFu7s_Us_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_Us_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu9ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7s_Us_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7s_Us_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu9ll, aBFu7s_Us_BFu9ll)
//============================================================================



static void Test_aBFu7s_Us_BFu9s()
{
  {
    init_simple_test("aBFu7s_Us_BFu9s");
    static STRUCT_IF_C aBFu7s_Us_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_Us_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_BFu9s.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "aBFu7s_Us_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "aBFu7s_Us_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_BFu9s, aBFu7s_Us_BFu9s)
//============================================================================



static void Test_aBFu7s_Us_C()
{
  {
    init_simple_test("aBFu7s_Us_C");
    static STRUCT_IF_C aBFu7s_Us_C lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Us_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_C");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_C.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_Us_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_C, aBFu7s_Us_C)
//============================================================================



static void Test_aBFu7s_Us_D()
{
  {
    init_simple_test("aBFu7s_Us_D");
    static STRUCT_IF_C aBFu7s_Us_D lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_Us_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_D");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_D.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_Us_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_D, aBFu7s_Us_D)
//============================================================================



static void Test_aBFu7s_Us_F()
{
  {
    init_simple_test("aBFu7s_Us_F");
    static STRUCT_IF_C aBFu7s_Us_F lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Us_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_F");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_F.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_Us_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_F, aBFu7s_Us_F)
//============================================================================



static void Test_aBFu7s_Us_I()
{
  {
    init_simple_test("aBFu7s_Us_I");
    static STRUCT_IF_C aBFu7s_Us_I lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Us_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_I");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_I.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_Us_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_I, aBFu7s_Us_I)
//============================================================================



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



static void Test_aBFu7s_Us_L()
{
  {
    init_simple_test("aBFu7s_Us_L");
    static STRUCT_IF_C aBFu7s_Us_L lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_Us_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_L");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_L.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_Us_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_L, aBFu7s_Us_L)
//============================================================================



static void Test_aBFu7s_Us_S()
{
  {
    init_simple_test("aBFu7s_Us_S");
    static STRUCT_IF_C aBFu7s_Us_S lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_Us_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_S");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_S.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_Us_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_S, aBFu7s_Us_S)
//============================================================================



static void Test_aBFu7s_Us_Uc()
{
  {
    init_simple_test("aBFu7s_Us_Uc");
    static STRUCT_IF_C aBFu7s_Us_Uc lv;
    check2(sizeof(lv), 4, "sizeof(aBFu7s_Us_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_Uc");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_Uc.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_Us_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_Uc, aBFu7s_Us_Uc)
//============================================================================



static void Test_aBFu7s_Us_Ui()
{
  {
    init_simple_test("aBFu7s_Us_Ui");
    static STRUCT_IF_C aBFu7s_Us_Ui lv;
    check2(sizeof(lv), 7, "sizeof(aBFu7s_Us_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_Ui");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_Ui.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_Us_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_Ui, aBFu7s_Us_Ui)
//============================================================================



static void Test_aBFu7s_Us_Ul()
{
  {
    init_simple_test("aBFu7s_Us_Ul");
    static STRUCT_IF_C aBFu7s_Us_Ul lv;
    check2(sizeof(lv), 11, "sizeof(aBFu7s_Us_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_Ul");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_Ul.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_Us_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_Ul, aBFu7s_Us_Ul)
//============================================================================



static void Test_aBFu7s_Us_Us()
{
  {
    init_simple_test("aBFu7s_Us_Us");
    static STRUCT_IF_C aBFu7s_Us_Us lv;
    check2(sizeof(lv), 5, "sizeof(aBFu7s_Us_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Us_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Us_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Us_Us");
    check_field_offset(lv, v2, 1, "aBFu7s_Us_Us.v2");
    check_field_offset(lv, v3, 3, "aBFu7s_Us_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Us_Us, aBFu7s_Us_Us)
//============================================================================



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



static void Test_aBFu7s_Vp()
{
  {
    init_simple_test("aBFu7s_Vp");
    static STRUCT_IF_C aBFu7s_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu7s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp, aBFu7s_Vp)
//============================================================================



static void Test_aBFu7s_Vp_BFu15i()
{
  {
    init_simple_test("aBFu7s_Vp_BFu15i");
    static STRUCT_IF_C aBFu7s_Vp_BFu15i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Vp_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu15i");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu15i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "aBFu7s_Vp_BFu15i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "aBFu7s_Vp_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu15i, aBFu7s_Vp_BFu15i)
//============================================================================



static void Test_aBFu7s_Vp_BFu15ll()
{
  {
    init_simple_test("aBFu7s_Vp_BFu15ll");
    static STRUCT_IF_C aBFu7s_Vp_BFu15ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Vp_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu15ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu15ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "aBFu7s_Vp_BFu15ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "aBFu7s_Vp_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu15ll, aBFu7s_Vp_BFu15ll)
//============================================================================



static void Test_aBFu7s_Vp_BFu15s()
{
  {
    init_simple_test("aBFu7s_Vp_BFu15s");
    static STRUCT_IF_C aBFu7s_Vp_BFu15s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Vp_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu15s");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu15s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "aBFu7s_Vp_BFu15s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "aBFu7s_Vp_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu15s, aBFu7s_Vp_BFu15s)
//============================================================================



static void Test_aBFu7s_Vp_BFu16i()
{
  {
    init_simple_test("aBFu7s_Vp_BFu16i");
    static STRUCT_IF_C aBFu7s_Vp_BFu16i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Vp_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu16i");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu16i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "aBFu7s_Vp_BFu16i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "aBFu7s_Vp_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu16i, aBFu7s_Vp_BFu16i)
//============================================================================



static void Test_aBFu7s_Vp_BFu16ll()
{
  {
    init_simple_test("aBFu7s_Vp_BFu16ll");
    static STRUCT_IF_C aBFu7s_Vp_BFu16ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Vp_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu16ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu16ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "aBFu7s_Vp_BFu16ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "aBFu7s_Vp_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu16ll, aBFu7s_Vp_BFu16ll)
//============================================================================



static void Test_aBFu7s_Vp_BFu16s()
{
  {
    init_simple_test("aBFu7s_Vp_BFu16s");
    static STRUCT_IF_C aBFu7s_Vp_BFu16s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Vp_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu16s");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu16s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "aBFu7s_Vp_BFu16s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "aBFu7s_Vp_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu16s, aBFu7s_Vp_BFu16s)
//============================================================================



static void Test_aBFu7s_Vp_BFu17i()
{
  {
    init_simple_test("aBFu7s_Vp_BFu17i");
    static STRUCT_IF_C aBFu7s_Vp_BFu17i lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu7s_Vp_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu17i");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu17i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, 1, "aBFu7s_Vp_BFu17i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, hide_ull(1LL<<16), "aBFu7s_Vp_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu17i, aBFu7s_Vp_BFu17i)
//============================================================================



static void Test_aBFu7s_Vp_BFu17ll()
{
  {
    init_simple_test("aBFu7s_Vp_BFu17ll");
    static STRUCT_IF_C aBFu7s_Vp_BFu17ll lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu7s_Vp_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu17ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu17ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, 1, "aBFu7s_Vp_BFu17ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, hide_ull(1LL<<16), "aBFu7s_Vp_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu17ll, aBFu7s_Vp_BFu17ll)
//============================================================================



static void Test_aBFu7s_Vp_BFu1c()
{
  {
    init_simple_test("aBFu7s_Vp_BFu1c");
    static STRUCT_IF_C aBFu7s_Vp_BFu1c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Vp_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu1c");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu1c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "aBFu7s_Vp_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu1c, aBFu7s_Vp_BFu1c)
//============================================================================



static void Test_aBFu7s_Vp_BFu1i()
{
  {
    init_simple_test("aBFu7s_Vp_BFu1i");
    static STRUCT_IF_C aBFu7s_Vp_BFu1i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Vp_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu1i");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu1i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "aBFu7s_Vp_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu1i, aBFu7s_Vp_BFu1i)
//============================================================================



static void Test_aBFu7s_Vp_BFu1ll()
{
  {
    init_simple_test("aBFu7s_Vp_BFu1ll");
    static STRUCT_IF_C aBFu7s_Vp_BFu1ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Vp_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu1ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu1ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "aBFu7s_Vp_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu1ll, aBFu7s_Vp_BFu1ll)
//============================================================================



static void Test_aBFu7s_Vp_BFu1s()
{
  {
    init_simple_test("aBFu7s_Vp_BFu1s");
    static STRUCT_IF_C aBFu7s_Vp_BFu1s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Vp_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu1s");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu1s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "aBFu7s_Vp_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu1s, aBFu7s_Vp_BFu1s)
//============================================================================



static void Test_aBFu7s_Vp_BFu31i()
{
  {
    init_simple_test("aBFu7s_Vp_BFu31i");
    static STRUCT_IF_C aBFu7s_Vp_BFu31i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_Vp_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu31i");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu31i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, 1, "aBFu7s_Vp_BFu31i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, hide_ull(1LL<<30), "aBFu7s_Vp_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu31i, aBFu7s_Vp_BFu31i)
//============================================================================



static void Test_aBFu7s_Vp_BFu31ll()
{
  {
    init_simple_test("aBFu7s_Vp_BFu31ll");
    static STRUCT_IF_C aBFu7s_Vp_BFu31ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_Vp_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu31ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu31ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, 1, "aBFu7s_Vp_BFu31ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, hide_ull(1LL<<30), "aBFu7s_Vp_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu31ll, aBFu7s_Vp_BFu31ll)
//============================================================================



static void Test_aBFu7s_Vp_BFu32i()
{
  {
    init_simple_test("aBFu7s_Vp_BFu32i");
    static STRUCT_IF_C aBFu7s_Vp_BFu32i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_Vp_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu32i");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu32i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, 1, "aBFu7s_Vp_BFu32i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, hide_ull(1LL<<31), "aBFu7s_Vp_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu32i, aBFu7s_Vp_BFu32i)
//============================================================================



static void Test_aBFu7s_Vp_BFu32ll()
{
  {
    init_simple_test("aBFu7s_Vp_BFu32ll");
    static STRUCT_IF_C aBFu7s_Vp_BFu32ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_Vp_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu32ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu32ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, 1, "aBFu7s_Vp_BFu32ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, hide_ull(1LL<<31), "aBFu7s_Vp_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu32ll, aBFu7s_Vp_BFu32ll)
//============================================================================



static void Test_aBFu7s_Vp_BFu33()
{
  {
    init_simple_test("aBFu7s_Vp_BFu33");
    static STRUCT_IF_C aBFu7s_Vp_BFu33 lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(aBFu7s_Vp_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu33");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu33.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 33, 1, "aBFu7s_Vp_BFu33");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 33, hide_ull(1LL<<32), "aBFu7s_Vp_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu33, aBFu7s_Vp_BFu33)
//============================================================================



static void Test_aBFu7s_Vp_BFu7c()
{
  {
    init_simple_test("aBFu7s_Vp_BFu7c");
    static STRUCT_IF_C aBFu7s_Vp_BFu7c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Vp_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu7c");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu7c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "aBFu7s_Vp_BFu7c");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu7c, aBFu7s_Vp_BFu7c)
//============================================================================



static void Test_aBFu7s_Vp_BFu7i()
{
  {
    init_simple_test("aBFu7s_Vp_BFu7i");
    static STRUCT_IF_C aBFu7s_Vp_BFu7i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Vp_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu7i");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu7i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "aBFu7s_Vp_BFu7i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu7i, aBFu7s_Vp_BFu7i)
//============================================================================



static void Test_aBFu7s_Vp_BFu7ll()
{
  {
    init_simple_test("aBFu7s_Vp_BFu7ll");
    static STRUCT_IF_C aBFu7s_Vp_BFu7ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Vp_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu7ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu7ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "aBFu7s_Vp_BFu7ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu7ll, aBFu7s_Vp_BFu7ll)
//============================================================================



static void Test_aBFu7s_Vp_BFu7s()
{
  {
    init_simple_test("aBFu7s_Vp_BFu7s");
    static STRUCT_IF_C aBFu7s_Vp_BFu7s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Vp_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu7s");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu7s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "aBFu7s_Vp_BFu7s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu7s, aBFu7s_Vp_BFu7s)
//============================================================================



static void Test_aBFu7s_Vp_BFu8c()
{
  {
    init_simple_test("aBFu7s_Vp_BFu8c");
    static STRUCT_IF_C aBFu7s_Vp_BFu8c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Vp_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu8c");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu8c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "aBFu7s_Vp_BFu8c");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "aBFu7s_Vp_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu8c, aBFu7s_Vp_BFu8c)
//============================================================================



static void Test_aBFu7s_Vp_BFu8i()
{
  {
    init_simple_test("aBFu7s_Vp_BFu8i");
    static STRUCT_IF_C aBFu7s_Vp_BFu8i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Vp_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu8i");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu8i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "aBFu7s_Vp_BFu8i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "aBFu7s_Vp_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu8i, aBFu7s_Vp_BFu8i)
//============================================================================



static void Test_aBFu7s_Vp_BFu8ll()
{
  {
    init_simple_test("aBFu7s_Vp_BFu8ll");
    static STRUCT_IF_C aBFu7s_Vp_BFu8ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Vp_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu8ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu8ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "aBFu7s_Vp_BFu8ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "aBFu7s_Vp_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu8ll, aBFu7s_Vp_BFu8ll)
//============================================================================



static void Test_aBFu7s_Vp_BFu8s()
{
  {
    init_simple_test("aBFu7s_Vp_BFu8s");
    static STRUCT_IF_C aBFu7s_Vp_BFu8s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Vp_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu8s");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu8s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "aBFu7s_Vp_BFu8s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "aBFu7s_Vp_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu8s, aBFu7s_Vp_BFu8s)
//============================================================================



static void Test_aBFu7s_Vp_BFu9i()
{
  {
    init_simple_test("aBFu7s_Vp_BFu9i");
    static STRUCT_IF_C aBFu7s_Vp_BFu9i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Vp_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu9i");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu9i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "aBFu7s_Vp_BFu9i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "aBFu7s_Vp_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu9i, aBFu7s_Vp_BFu9i)
//============================================================================



static void Test_aBFu7s_Vp_BFu9ll()
{
  {
    init_simple_test("aBFu7s_Vp_BFu9ll");
    static STRUCT_IF_C aBFu7s_Vp_BFu9ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Vp_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu9ll");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu9ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "aBFu7s_Vp_BFu9ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "aBFu7s_Vp_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu9ll, aBFu7s_Vp_BFu9ll)
//============================================================================



static void Test_aBFu7s_Vp_BFu9s()
{
  {
    init_simple_test("aBFu7s_Vp_BFu9s");
    static STRUCT_IF_C aBFu7s_Vp_BFu9s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Vp_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_BFu9s");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_BFu9s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "aBFu7s_Vp_BFu9s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "aBFu7s_Vp_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_BFu9s, aBFu7s_Vp_BFu9s)
//============================================================================



static void Test_aBFu7s_Vp_C()
{
  {
    init_simple_test("aBFu7s_Vp_C");
    static STRUCT_IF_C aBFu7s_Vp_C lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Vp_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_C");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_C.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Vp_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_C, aBFu7s_Vp_C)
//============================================================================



static void Test_aBFu7s_Vp_D()
{
  {
    init_simple_test("aBFu7s_Vp_D");
    static STRUCT_IF_C aBFu7s_Vp_D lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7s_Vp_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_D");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_D.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Vp_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_D, aBFu7s_Vp_D)
//============================================================================



static void Test_aBFu7s_Vp_F()
{
  {
    init_simple_test("aBFu7s_Vp_F");
    static STRUCT_IF_C aBFu7s_Vp_F lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_Vp_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_F");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_F.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Vp_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_F, aBFu7s_Vp_F)
//============================================================================



static void Test_aBFu7s_Vp_I()
{
  {
    init_simple_test("aBFu7s_Vp_I");
    static STRUCT_IF_C aBFu7s_Vp_I lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_Vp_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_I");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_I.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Vp_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_I, aBFu7s_Vp_I)
//============================================================================



static void Test_aBFu7s_Vp_Ip()
{
  {
    init_simple_test("aBFu7s_Vp_Ip");
    static STRUCT_IF_C aBFu7s_Vp_Ip lv;
    check2(sizeof(lv), ABISELECT(17,9), "sizeof(aBFu7s_Vp_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_Ip");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_Ip.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Vp_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_Ip, aBFu7s_Vp_Ip)
//============================================================================



static void Test_aBFu7s_Vp_L()
{
  {
    init_simple_test("aBFu7s_Vp_L");
    static STRUCT_IF_C aBFu7s_Vp_L lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7s_Vp_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_L");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_L.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Vp_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_L, aBFu7s_Vp_L)
//============================================================================



static void Test_aBFu7s_Vp_S()
{
  {
    init_simple_test("aBFu7s_Vp_S");
    static STRUCT_IF_C aBFu7s_Vp_S lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Vp_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_S");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_S.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Vp_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_S, aBFu7s_Vp_S)
//============================================================================



static void Test_aBFu7s_Vp_Uc()
{
  {
    init_simple_test("aBFu7s_Vp_Uc");
    static STRUCT_IF_C aBFu7s_Vp_Uc lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu7s_Vp_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_Uc");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_Uc.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Vp_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_Uc, aBFu7s_Vp_Uc)
//============================================================================



static void Test_aBFu7s_Vp_Ui()
{
  {
    init_simple_test("aBFu7s_Vp_Ui");
    static STRUCT_IF_C aBFu7s_Vp_Ui lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu7s_Vp_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_Ui");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_Ui.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Vp_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_Ui, aBFu7s_Vp_Ui)
//============================================================================



static void Test_aBFu7s_Vp_Ul()
{
  {
    init_simple_test("aBFu7s_Vp_Ul");
    static STRUCT_IF_C aBFu7s_Vp_Ul lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(aBFu7s_Vp_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_Ul");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_Ul.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Vp_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_Ul, aBFu7s_Vp_Ul)
//============================================================================



static void Test_aBFu7s_Vp_Us()
{
  {
    init_simple_test("aBFu7s_Vp_Us");
    static STRUCT_IF_C aBFu7s_Vp_Us lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu7s_Vp_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_Us");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_Us.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Vp_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_Us, aBFu7s_Vp_Us)
//============================================================================



static void Test_aBFu7s_Vp_Vp()
{
  {
    init_simple_test("aBFu7s_Vp_Vp");
    static STRUCT_IF_C aBFu7s_Vp_Vp lv;
    check2(sizeof(lv), ABISELECT(17,9), "sizeof(aBFu7s_Vp_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu7s_Vp_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu7s_Vp_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu7s_Vp_Vp");
    check_field_offset(lv, v2, 1, "aBFu7s_Vp_Vp.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "aBFu7s_Vp_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu7s_Vp_Vp, aBFu7s_Vp_Vp)
//============================================================================



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



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



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



static void Test_aBFu8c_BFs8c_BFs8c_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8c_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8c_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8c_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8c_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8c_BFs8c, aBFu8c_BFs8c_BFs8c_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8c_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8c_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8c_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8c_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8c_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8c_BFs8i, aBFu8c_BFs8c_BFs8c_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8c_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8c_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8c_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8c_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8c_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8c_BFs8ll, aBFu8c_BFs8c_BFs8c_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8c_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8c_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8c_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8c_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8c_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8c_BFs8s, aBFu8c_BFs8c_BFs8c_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8c_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8c_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8c_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8c_BFu8c, aBFu8c_BFs8c_BFs8c_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8c_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8c_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8c_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8c_BFu8i, aBFu8c_BFs8c_BFs8c_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8c_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8c_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8c_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8c_BFu8ll, aBFu8c_BFs8c_BFs8c_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8c_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8c_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8c_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8c_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8c_BFu8s, aBFu8c_BFs8c_BFs8c_BFu8s)
//============================================================================



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



static void Test_aBFu8c_BFs8c_BFs8i_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8i_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8i_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8i_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8i_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8i_BFs8c, aBFu8c_BFs8c_BFs8i_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8i_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8i_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8i_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8i_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8i_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8i_BFs8i, aBFu8c_BFs8c_BFs8i_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8i_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8i_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8i_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8i_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8i_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8i_BFs8ll, aBFu8c_BFs8c_BFs8i_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8i_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8i_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8i_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8i_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8i_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8i_BFs8s, aBFu8c_BFs8c_BFs8i_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8i_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8i_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8i_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8i_BFu8c, aBFu8c_BFs8c_BFs8i_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8i_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8i_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8i_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8i_BFu8i, aBFu8c_BFs8c_BFs8i_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8i_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8i_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8i_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8i_BFu8ll, aBFu8c_BFs8c_BFs8i_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8i_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8i_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8i_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8i_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8i_BFu8s, aBFu8c_BFs8c_BFs8i_BFu8s)
//============================================================================



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



static void Test_aBFu8c_BFs8c_BFs8ll_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8ll_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8ll_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8ll_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8ll_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8ll_BFs8c, aBFu8c_BFs8c_BFs8ll_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8ll_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8ll_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8ll_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8ll_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8ll_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8ll_BFs8i, aBFu8c_BFs8c_BFs8ll_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8ll_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8ll_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8ll_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8ll_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8ll_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8ll_BFs8ll, aBFu8c_BFs8c_BFs8ll_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8ll_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8ll_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8ll_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8ll_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8ll_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8ll_BFs8s, aBFu8c_BFs8c_BFs8ll_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8ll_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8ll_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8ll_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8ll_BFu8c, aBFu8c_BFs8c_BFs8ll_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8ll_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8ll_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8ll_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8ll_BFu8i, aBFu8c_BFs8c_BFs8ll_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8ll_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8ll_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8ll_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8ll_BFu8ll, aBFu8c_BFs8c_BFs8ll_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8ll_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8ll_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8ll_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8ll_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8ll_BFu8s, aBFu8c_BFs8c_BFs8ll_BFu8s)
//============================================================================



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



static void Test_aBFu8c_BFs8c_BFs8s_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8s_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8s_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8s_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8s_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8s_BFs8c, aBFu8c_BFs8c_BFs8s_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8s_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8s_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8s_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8s_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8s_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8s_BFs8i, aBFu8c_BFs8c_BFs8s_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8s_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8s_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8s_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8s_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8s_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8s_BFs8ll, aBFu8c_BFs8c_BFs8s_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8s_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8s_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8s_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8s_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8s_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8s_BFs8s, aBFu8c_BFs8c_BFs8s_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8s_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8s_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8s_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8s_BFu8c, aBFu8c_BFs8c_BFs8s_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8s_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8s_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8s_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8s_BFu8i, aBFu8c_BFs8c_BFs8s_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8s_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8s_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8s_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8s_BFu8ll, aBFu8c_BFs8c_BFs8s_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8c_BFs8s_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFs8s_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8c_BFs8s_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFs8s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFs8s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFs8s_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFs8s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFs8s_BFu8s, aBFu8c_BFs8c_BFs8s_BFu8s)
//============================================================================



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



static void Test_aBFu8c_BFs8c_BFu8c_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8c_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8c_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8c_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8c_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8c_BFs8c, aBFu8c_BFs8c_BFu8c_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8c_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8c_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8c_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8c_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8c_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8c_BFs8i, aBFu8c_BFs8c_BFu8c_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8c_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8c_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8c_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8c_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8c_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8c_BFs8ll, aBFu8c_BFs8c_BFu8c_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8c_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8c_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8c_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8c_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8c_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8c_BFs8s, aBFu8c_BFs8c_BFu8c_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8c_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8c_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8c_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8c_BFu8c, aBFu8c_BFs8c_BFu8c_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8c_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8c_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8c_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8c_BFu8i, aBFu8c_BFs8c_BFu8c_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8c_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8c_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8c_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8c_BFu8ll, aBFu8c_BFs8c_BFu8c_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8c_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8c_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8c_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8c_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8c_BFu8s, aBFu8c_BFs8c_BFu8c_BFu8s)
//============================================================================



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



static void Test_aBFu8c_BFs8c_BFu8i_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8i_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8i_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8i_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8i_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8i_BFs8c, aBFu8c_BFs8c_BFu8i_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8i_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8i_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8i_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8i_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8i_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8i_BFs8i, aBFu8c_BFs8c_BFu8i_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8i_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8i_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8i_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8i_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8i_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8i_BFs8ll, aBFu8c_BFs8c_BFu8i_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8i_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8i_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8i_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8i_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8i_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8i_BFs8s, aBFu8c_BFs8c_BFu8i_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8i_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8i_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8i_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8i_BFu8c, aBFu8c_BFs8c_BFu8i_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8i_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8i_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8i_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8i_BFu8i, aBFu8c_BFs8c_BFu8i_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8i_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8i_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8i_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8i_BFu8ll, aBFu8c_BFs8c_BFu8i_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8i_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8i_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8i_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8i_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8i_BFu8s, aBFu8c_BFs8c_BFu8i_BFu8s)
//============================================================================



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



static void Test_aBFu8c_BFs8c_BFu8ll_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8ll_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8ll_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8ll_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8ll_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8ll_BFs8c, aBFu8c_BFs8c_BFu8ll_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8ll_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8ll_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8ll_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8ll_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8ll_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8ll_BFs8i, aBFu8c_BFs8c_BFu8ll_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8ll_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8ll_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8ll_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8ll_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8ll_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8ll_BFs8ll, aBFu8c_BFs8c_BFu8ll_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8ll_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8ll_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8ll_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8ll_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8ll_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8ll_BFs8s, aBFu8c_BFs8c_BFu8ll_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8ll_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8ll_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8ll_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8ll_BFu8c, aBFu8c_BFs8c_BFu8ll_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8ll_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8ll_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8ll_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8ll_BFu8i, aBFu8c_BFs8c_BFu8ll_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8ll_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8ll_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8ll_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8ll_BFu8ll, aBFu8c_BFs8c_BFu8ll_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8ll_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8ll_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8ll_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8ll_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8ll_BFu8s, aBFu8c_BFs8c_BFu8ll_BFu8s)
//============================================================================



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



static void Test_aBFu8c_BFs8c_BFu8s_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8s_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8s_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8s_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8s_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8s_BFs8c, aBFu8c_BFs8c_BFu8s_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8s_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8s_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8s_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8s_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8s_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8s_BFs8i, aBFu8c_BFs8c_BFu8s_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8s_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8s_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8s_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8s_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8s_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8s_BFs8ll, aBFu8c_BFs8c_BFu8s_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8s_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8s_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8s_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8s_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8s_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8s_BFs8s, aBFu8c_BFs8c_BFu8s_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8s_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8s_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8s_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8s_BFu8c, aBFu8c_BFs8c_BFu8s_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8s_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8s_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8s_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8s_BFu8i, aBFu8c_BFs8c_BFu8s_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8s_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8s_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8s_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8s_BFu8ll, aBFu8c_BFs8c_BFu8s_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8c_BFu8s_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8c_BFu8s_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8c_BFu8s_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8c_BFu8s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8c_BFu8s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8c_BFu8s_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8c_BFu8s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8c_BFu8s_BFu8s, aBFu8c_BFs8c_BFu8s_BFu8s)
//============================================================================



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



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



static void Test_aBFu8c_BFs8i_BFs8c_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8c_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8c_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8c_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8c_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8c_BFs8c, aBFu8c_BFs8i_BFs8c_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8c_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8c_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8c_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8c_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8c_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8c_BFs8i, aBFu8c_BFs8i_BFs8c_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8c_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8c_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8c_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8c_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8c_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8c_BFs8ll, aBFu8c_BFs8i_BFs8c_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8c_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8c_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8c_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8c_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8c_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8c_BFs8s, aBFu8c_BFs8i_BFs8c_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8c_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8c_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8c_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8c_BFu8c, aBFu8c_BFs8i_BFs8c_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8c_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8c_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8c_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8c_BFu8i, aBFu8c_BFs8i_BFs8c_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8c_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8c_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8c_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8c_BFu8ll, aBFu8c_BFs8i_BFs8c_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8c_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8c_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8c_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8c_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8c_BFu8s, aBFu8c_BFs8i_BFs8c_BFu8s)
//============================================================================



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



static void Test_aBFu8c_BFs8i_BFs8i_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8i_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8i_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8i_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8i_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8i_BFs8c, aBFu8c_BFs8i_BFs8i_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8i_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8i_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8i_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8i_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8i_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8i_BFs8i, aBFu8c_BFs8i_BFs8i_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8i_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8i_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8i_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8i_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8i_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8i_BFs8ll, aBFu8c_BFs8i_BFs8i_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8i_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8i_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8i_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8i_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8i_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8i_BFs8s, aBFu8c_BFs8i_BFs8i_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8i_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8i_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8i_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8i_BFu8c, aBFu8c_BFs8i_BFs8i_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8i_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8i_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8i_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8i_BFu8i, aBFu8c_BFs8i_BFs8i_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8i_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8i_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8i_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8i_BFu8ll, aBFu8c_BFs8i_BFs8i_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8i_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8i_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8i_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8i_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8i_BFu8s, aBFu8c_BFs8i_BFs8i_BFu8s)
//============================================================================



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



static void Test_aBFu8c_BFs8i_BFs8ll_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8ll_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8ll_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8ll_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8ll_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8ll_BFs8c, aBFu8c_BFs8i_BFs8ll_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8ll_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8ll_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8ll_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8ll_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8ll_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8ll_BFs8i, aBFu8c_BFs8i_BFs8ll_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8ll_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8ll_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8ll_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8ll_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8ll_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8ll_BFs8ll, aBFu8c_BFs8i_BFs8ll_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8ll_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8ll_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8ll_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8ll_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8ll_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8ll_BFs8s, aBFu8c_BFs8i_BFs8ll_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8ll_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8ll_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8ll_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8ll_BFu8c, aBFu8c_BFs8i_BFs8ll_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8ll_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8ll_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8ll_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8ll_BFu8i, aBFu8c_BFs8i_BFs8ll_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8ll_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8ll_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8ll_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8ll_BFu8ll, aBFu8c_BFs8i_BFs8ll_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8ll_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8ll_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8ll_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8ll_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8ll_BFu8s, aBFu8c_BFs8i_BFs8ll_BFu8s)
//============================================================================



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



static void Test_aBFu8c_BFs8i_BFs8s_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8s_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8s_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8s_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8s_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8s_BFs8c, aBFu8c_BFs8i_BFs8s_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8s_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8s_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8s_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8s_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8s_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8s_BFs8i, aBFu8c_BFs8i_BFs8s_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8s_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8s_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8s_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8s_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8s_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8s_BFs8ll, aBFu8c_BFs8i_BFs8s_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8s_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8s_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8s_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8s_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8s_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8s_BFs8s, aBFu8c_BFs8i_BFs8s_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8s_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8s_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8s_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8s_BFu8c, aBFu8c_BFs8i_BFs8s_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8s_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8s_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8s_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8s_BFu8i, aBFu8c_BFs8i_BFs8s_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8s_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8s_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8s_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8s_BFu8ll, aBFu8c_BFs8i_BFs8s_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8i_BFs8s_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFs8s_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8i_BFs8s_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFs8s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFs8s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFs8s_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFs8s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFs8s_BFu8s, aBFu8c_BFs8i_BFs8s_BFu8s)
//============================================================================



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



static void Test_aBFu8c_BFs8i_BFu8c_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8c_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8c_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8c_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8c_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8c_BFs8c, aBFu8c_BFs8i_BFu8c_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8c_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8c_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8c_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8c_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8c_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8c_BFs8i, aBFu8c_BFs8i_BFu8c_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8c_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8c_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8c_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8c_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8c_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8c_BFs8ll, aBFu8c_BFs8i_BFu8c_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8c_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8c_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8c_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8c_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8c_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8c_BFs8s, aBFu8c_BFs8i_BFu8c_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8c_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8c_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8c_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8c_BFu8c, aBFu8c_BFs8i_BFu8c_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8c_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8c_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8c_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8c_BFu8i, aBFu8c_BFs8i_BFu8c_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8c_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8c_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8c_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8c_BFu8ll, aBFu8c_BFs8i_BFu8c_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8c_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8c_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8c_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8c_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8c_BFu8s, aBFu8c_BFs8i_BFu8c_BFu8s)
//============================================================================



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



static void Test_aBFu8c_BFs8i_BFu8i_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8i_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8i_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8i_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8i_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8i_BFs8c, aBFu8c_BFs8i_BFu8i_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8i_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8i_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8i_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8i_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8i_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8i_BFs8i, aBFu8c_BFs8i_BFu8i_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8i_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8i_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8i_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8i_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8i_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8i_BFs8ll, aBFu8c_BFs8i_BFu8i_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8i_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8i_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8i_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8i_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8i_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8i_BFs8s, aBFu8c_BFs8i_BFu8i_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8i_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8i_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8i_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8i_BFu8c, aBFu8c_BFs8i_BFu8i_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8i_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8i_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8i_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8i_BFu8i, aBFu8c_BFs8i_BFu8i_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8i_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8i_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8i_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8i_BFu8ll, aBFu8c_BFs8i_BFu8i_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8i_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8i_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8i_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8i_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8i_BFu8s, aBFu8c_BFs8i_BFu8i_BFu8s)
//============================================================================



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



static void Test_aBFu8c_BFs8i_BFu8ll_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8ll_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8ll_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8ll_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8ll_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8ll_BFs8c, aBFu8c_BFs8i_BFu8ll_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8ll_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8ll_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8ll_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8ll_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8ll_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8ll_BFs8i, aBFu8c_BFs8i_BFu8ll_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8ll_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8ll_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8ll_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8ll_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8ll_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8ll_BFs8ll, aBFu8c_BFs8i_BFu8ll_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8ll_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8ll_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8ll_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8ll_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8ll_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8ll_BFs8s, aBFu8c_BFs8i_BFu8ll_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8ll_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8ll_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8ll_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8ll_BFu8c, aBFu8c_BFs8i_BFu8ll_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8ll_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8ll_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8ll_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8ll_BFu8i, aBFu8c_BFs8i_BFu8ll_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8ll_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8ll_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8ll_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8ll_BFu8ll, aBFu8c_BFs8i_BFu8ll_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8ll_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8ll_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8ll_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8ll_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8ll_BFu8s, aBFu8c_BFs8i_BFu8ll_BFu8s)
//============================================================================



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



static void Test_aBFu8c_BFs8i_BFu8s_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8s_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8s_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8s_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8s_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8s_BFs8c, aBFu8c_BFs8i_BFu8s_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8s_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8s_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8s_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8s_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8s_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8s_BFs8i, aBFu8c_BFs8i_BFu8s_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8s_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8s_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8s_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8s_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8s_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8s_BFs8ll, aBFu8c_BFs8i_BFu8s_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8s_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8s_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8s_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8s_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8s_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8s_BFs8s, aBFu8c_BFs8i_BFu8s_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8s_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8s_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8s_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8s_BFu8c, aBFu8c_BFs8i_BFu8s_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8s_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8s_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8s_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8s_BFu8i, aBFu8c_BFs8i_BFu8s_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8s_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8s_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8s_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8s_BFu8ll, aBFu8c_BFs8i_BFu8s_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8i_BFu8s_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8i_BFu8s_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8i_BFu8s_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8i_BFu8s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8i_BFu8s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8i_BFu8s_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8i_BFu8s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8i_BFu8s_BFu8s, aBFu8c_BFs8i_BFu8s_BFu8s)
//============================================================================



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



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



static void Test_aBFu8c_BFs8ll_BFs8c_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8ll_BFs8c_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8ll_BFs8c_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8ll_BFs8c_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8ll_BFs8c_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8ll_BFs8c_BFs8c, aBFu8c_BFs8ll_BFs8c_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8ll_BFs8c_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8ll_BFs8c_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8ll_BFs8c_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8ll_BFs8c_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8ll_BFs8c_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8ll_BFs8c_BFs8i, aBFu8c_BFs8ll_BFs8c_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8ll_BFs8c_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8ll_BFs8c_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8ll_BFs8c_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8ll_BFs8c_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8ll_BFs8c_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8ll_BFs8c_BFs8ll, aBFu8c_BFs8ll_BFs8c_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8ll_BFs8c_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8ll_BFs8c_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8ll_BFs8c_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8ll_BFs8c_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8ll_BFs8c_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8ll_BFs8c_BFs8s, aBFu8c_BFs8ll_BFs8c_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8ll_BFs8c_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8ll_BFs8c_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8ll_BFs8c_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8ll_BFs8c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8ll_BFs8c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8ll_BFs8c_BFu8c, aBFu8c_BFs8ll_BFs8c_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8ll_BFs8c_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8ll_BFs8c_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8ll_BFs8c_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8ll_BFs8c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8ll_BFs8c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8ll_BFs8c_BFu8i, aBFu8c_BFs8ll_BFs8c_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8ll_BFs8c_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8ll_BFs8c_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8ll_BFs8c_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8ll_BFs8c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8ll_BFs8c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8ll_BFs8c_BFu8ll, aBFu8c_BFs8ll_BFs8c_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8ll_BFs8c_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8ll_BFs8c_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8ll_BFs8c_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8ll_BFs8c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8ll_BFs8c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8ll_BFs8c_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8ll_BFs8c_BFu8s, aBFu8c_BFs8ll_BFs8c_BFu8s)
//============================================================================



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



static void Test_aBFu8c_BFs8ll_BFs8i_BFs8c()
{
  {
    init_simple_test("aBFu8c_BFs8ll_BFs8i_BFs8c");
    static STRUCT_IF_C aBFu8c_BFs8ll_BFs8i_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8ll_BFs8i_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8ll_BFs8i_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8ll_BFs8i_BFs8c, aBFu8c_BFs8ll_BFs8i_BFs8c)
//============================================================================



static void Test_aBFu8c_BFs8ll_BFs8i_BFs8i()
{
  {
    init_simple_test("aBFu8c_BFs8ll_BFs8i_BFs8i");
    static STRUCT_IF_C aBFu8c_BFs8ll_BFs8i_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8ll_BFs8i_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8ll_BFs8i_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8ll_BFs8i_BFs8i, aBFu8c_BFs8ll_BFs8i_BFs8i)
//============================================================================



static void Test_aBFu8c_BFs8ll_BFs8i_BFs8ll()
{
  {
    init_simple_test("aBFu8c_BFs8ll_BFs8i_BFs8ll");
    static STRUCT_IF_C aBFu8c_BFs8ll_BFs8i_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8ll_BFs8i_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8ll_BFs8i_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8ll_BFs8i_BFs8ll, aBFu8c_BFs8ll_BFs8i_BFs8ll)
//============================================================================



static void Test_aBFu8c_BFs8ll_BFs8i_BFs8s()
{
  {
    init_simple_test("aBFu8c_BFs8ll_BFs8i_BFs8s");
    static STRUCT_IF_C aBFu8c_BFs8ll_BFs8i_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8ll_BFs8i_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8ll_BFs8i_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8ll_BFs8i_BFs8s, aBFu8c_BFs8ll_BFs8i_BFs8s)
//============================================================================



static void Test_aBFu8c_BFs8ll_BFs8i_BFu8c()
{
  {
    init_simple_test("aBFu8c_BFs8ll_BFs8i_BFu8c");
    static STRUCT_IF_C aBFu8c_BFs8ll_BFs8i_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8ll_BFs8i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8ll_BFs8i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8ll_BFs8i_BFu8c, aBFu8c_BFs8ll_BFs8i_BFu8c)
//============================================================================



static void Test_aBFu8c_BFs8ll_BFs8i_BFu8i()
{
  {
    init_simple_test("aBFu8c_BFs8ll_BFs8i_BFu8i");
    static STRUCT_IF_C aBFu8c_BFs8ll_BFs8i_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8ll_BFs8i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8ll_BFs8i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8ll_BFs8i_BFu8i, aBFu8c_BFs8ll_BFs8i_BFu8i)
//============================================================================



static void Test_aBFu8c_BFs8ll_BFs8i_BFu8ll()
{
  {
    init_simple_test("aBFu8c_BFs8ll_BFs8i_BFu8ll");
    static STRUCT_IF_C aBFu8c_BFs8ll_BFs8i_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8ll_BFs8i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8ll_BFs8i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8ll_BFs8i_BFu8ll, aBFu8c_BFs8ll_BFs8i_BFu8ll)
//============================================================================



static void Test_aBFu8c_BFs8ll_BFs8i_BFu8s()
{
  {
    init_simple_test("aBFu8c_BFs8ll_BFs8i_BFu8s");
    static STRUCT_IF_C aBFu8c_BFs8ll_BFs8i_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu8c_BFs8ll_BFs8i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu8c_BFs8ll_BFs8i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_sll(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "aBFu8c_BFs8ll_BFs8i_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "aBFu8c_BFs8ll_BFs8i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu8c_BFs8ll_BFs8i_BFu8s, aBFu8c_BFs8ll_BFs8i_BFu8s)
//============================================================================



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

