// 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"
#pragma pack(1)
struct BFu8s_BFu8s_BFu8c_BFu8ll { unsigned short v1:8; unsigned short v2:8; unsigned char v3:8; unsigned long long v4:8; };
struct BFu8s_BFu8s_BFu8c_BFu8s { unsigned short v1:8; unsigned short v2:8; unsigned char v3:8; unsigned short v4:8; };
struct BFu8s_BFu8s_BFu8i { unsigned short v1:8; unsigned short v2:8; unsigned int v3:8; };
struct BFu8s_BFu8s_BFu8i_BFs8c { unsigned short v1:8; unsigned short v2:8; unsigned int v3:8; signed char v4:8; };
struct BFu8s_BFu8s_BFu8i_BFs8i { unsigned short v1:8; unsigned short v2:8; unsigned int v3:8; signed int v4:8; };
struct BFu8s_BFu8s_BFu8i_BFs8ll { unsigned short v1:8; unsigned short v2:8; unsigned int v3:8; signed long long v4:8; };
struct BFu8s_BFu8s_BFu8i_BFs8s { unsigned short v1:8; unsigned short v2:8; unsigned int v3:8; signed short v4:8; };
struct BFu8s_BFu8s_BFu8i_BFu8c { unsigned short v1:8; unsigned short v2:8; unsigned int v3:8; unsigned char v4:8; };
struct BFu8s_BFu8s_BFu8i_BFu8i { unsigned short v1:8; unsigned short v2:8; unsigned int v3:8; unsigned int v4:8; };
struct BFu8s_BFu8s_BFu8i_BFu8ll { unsigned short v1:8; unsigned short v2:8; unsigned int v3:8; unsigned long long v4:8; };
struct BFu8s_BFu8s_BFu8i_BFu8s { unsigned short v1:8; unsigned short v2:8; unsigned int v3:8; unsigned short v4:8; };
struct BFu8s_BFu8s_BFu8ll { unsigned short v1:8; unsigned short v2:8; unsigned long long v3:8; };
struct BFu8s_BFu8s_BFu8ll_BFs8c { unsigned short v1:8; unsigned short v2:8; unsigned long long v3:8; signed char v4:8; };
struct BFu8s_BFu8s_BFu8ll_BFs8i { unsigned short v1:8; unsigned short v2:8; unsigned long long v3:8; signed int v4:8; };
struct BFu8s_BFu8s_BFu8ll_BFs8ll { unsigned short v1:8; unsigned short v2:8; unsigned long long v3:8; signed long long v4:8; };
struct BFu8s_BFu8s_BFu8ll_BFs8s { unsigned short v1:8; unsigned short v2:8; unsigned long long v3:8; signed short v4:8; };
struct BFu8s_BFu8s_BFu8ll_BFu8c { unsigned short v1:8; unsigned short v2:8; unsigned long long v3:8; unsigned char v4:8; };
struct BFu8s_BFu8s_BFu8ll_BFu8i { unsigned short v1:8; unsigned short v2:8; unsigned long long v3:8; unsigned int v4:8; };
struct BFu8s_BFu8s_BFu8ll_BFu8ll { unsigned short v1:8; unsigned short v2:8; unsigned long long v3:8; unsigned long long v4:8; };
struct BFu8s_BFu8s_BFu8ll_BFu8s { unsigned short v1:8; unsigned short v2:8; unsigned long long v3:8; unsigned short v4:8; };
struct BFu8s_BFu8s_BFu8s { unsigned short v1:8; unsigned short v2:8; unsigned short v3:8; };
struct BFu8s_BFu8s_BFu8s_BFs8c { unsigned short v1:8; unsigned short v2:8; unsigned short v3:8; signed char v4:8; };
struct BFu8s_BFu8s_BFu8s_BFs8i { unsigned short v1:8; unsigned short v2:8; unsigned short v3:8; signed int v4:8; };
struct BFu8s_BFu8s_BFu8s_BFs8ll { unsigned short v1:8; unsigned short v2:8; unsigned short v3:8; signed long long v4:8; };
struct BFu8s_BFu8s_BFu8s_BFs8s { unsigned short v1:8; unsigned short v2:8; unsigned short v3:8; signed short v4:8; };
struct BFu8s_BFu8s_BFu8s_BFu8c { unsigned short v1:8; unsigned short v2:8; unsigned short v3:8; unsigned char v4:8; };
struct BFu8s_BFu8s_BFu8s_BFu8i { unsigned short v1:8; unsigned short v2:8; unsigned short v3:8; unsigned int v4:8; };
struct BFu8s_BFu8s_BFu8s_BFu8ll { unsigned short v1:8; unsigned short v2:8; unsigned short v3:8; unsigned long long v4:8; };
struct BFu8s_BFu8s_BFu8s_BFu8s { unsigned short v1:8; unsigned short v2:8; unsigned short v3:8; unsigned short v4:8; };
struct BFu8s_BFu8s_BFu9i { unsigned short v1:8; unsigned short v2:8; unsigned int v3:9; };
struct BFu8s_BFu8s_BFu9ll { unsigned short v1:8; unsigned short v2:8; unsigned long long v3:9; };
struct BFu8s_BFu8s_BFu9s { unsigned short v1:8; unsigned short v2:8; unsigned short v3:9; };
struct BFu8s_BFu8s_C { unsigned short v1:8; unsigned short v2:8; char v3; };
struct BFu8s_BFu8s_D { unsigned short v1:8; unsigned short v2:8; double v3; };
struct BFu8s_BFu8s_F { unsigned short v1:8; unsigned short v2:8; float v3; };
struct BFu8s_BFu8s_I { unsigned short v1:8; unsigned short v2:8; int v3; };
struct BFu8s_BFu8s_Ip { unsigned short v1:8; unsigned short v2:8; int * v3; };
struct BFu8s_BFu8s_L { unsigned short v1:8; unsigned short v2:8; long long v3; };
struct BFu8s_BFu8s_S { unsigned short v1:8; unsigned short v2:8; short v3; };
struct BFu8s_BFu8s_Uc { unsigned short v1:8; unsigned short v2:8; unsigned char v3; };
struct BFu8s_BFu8s_Ui { unsigned short v1:8; unsigned short v2:8; unsigned int v3; };
struct BFu8s_BFu8s_Ul { unsigned short v1:8; unsigned short v2:8; unsigned long long v3; };
struct BFu8s_BFu8s_Us { unsigned short v1:8; unsigned short v2:8; unsigned short v3; };
struct BFu8s_BFu8s_Vp { unsigned short v1:8; unsigned short v2:8; void * v3; };
struct BFu8s_BFu9i { unsigned short v1:8; unsigned int v2:9; };
struct BFu8s_BFu9i_BFu15i { unsigned short v1:8; unsigned int v2:9; unsigned int v3:15; };
struct BFu8s_BFu9i_BFu15ll { unsigned short v1:8; unsigned int v2:9; unsigned long long v3:15; };
struct BFu8s_BFu9i_BFu15s { unsigned short v1:8; unsigned int v2:9; unsigned short v3:15; };
struct BFu8s_BFu9i_BFu16i { unsigned short v1:8; unsigned int v2:9; unsigned int v3:16; };
struct BFu8s_BFu9i_BFu16ll { unsigned short v1:8; unsigned int v2:9; unsigned long long v3:16; };
struct BFu8s_BFu9i_BFu16s { unsigned short v1:8; unsigned int v2:9; unsigned short v3:16; };
struct BFu8s_BFu9i_BFu17i { unsigned short v1:8; unsigned int v2:9; unsigned int v3:17; };
struct BFu8s_BFu9i_BFu17ll { unsigned short v1:8; unsigned int v2:9; unsigned long long v3:17; };
struct BFu8s_BFu9i_BFu1c { unsigned short v1:8; unsigned int v2:9; unsigned char v3:1; };
struct BFu8s_BFu9i_BFu1i { unsigned short v1:8; unsigned int v2:9; unsigned int v3:1; };
struct BFu8s_BFu9i_BFu1ll { unsigned short v1:8; unsigned int v2:9; unsigned long long v3:1; };
struct BFu8s_BFu9i_BFu1s { unsigned short v1:8; unsigned int v2:9; unsigned short v3:1; };
struct BFu8s_BFu9i_BFu31i { unsigned short v1:8; unsigned int v2:9; unsigned int v3:31; };
struct BFu8s_BFu9i_BFu31ll { unsigned short v1:8; unsigned int v2:9; unsigned long long v3:31; };
struct BFu8s_BFu9i_BFu32i { unsigned short v1:8; unsigned int v2:9; unsigned int v3:32; };
struct BFu8s_BFu9i_BFu32ll { unsigned short v1:8; unsigned int v2:9; unsigned long long v3:32; };
struct BFu8s_BFu9i_BFu33 { unsigned short v1:8; unsigned int v2:9; unsigned long long v3:33; };
struct BFu8s_BFu9i_BFu7c { unsigned short v1:8; unsigned int v2:9; unsigned char v3:7; };
struct BFu8s_BFu9i_BFu7i { unsigned short v1:8; unsigned int v2:9; unsigned int v3:7; };
struct BFu8s_BFu9i_BFu7ll { unsigned short v1:8; unsigned int v2:9; unsigned long long v3:7; };
struct BFu8s_BFu9i_BFu7s { unsigned short v1:8; unsigned int v2:9; unsigned short v3:7; };
struct BFu8s_BFu9i_BFu8c { unsigned short v1:8; unsigned int v2:9; unsigned char v3:8; };
struct BFu8s_BFu9i_BFu8i { unsigned short v1:8; unsigned int v2:9; unsigned int v3:8; };
struct BFu8s_BFu9i_BFu8ll { unsigned short v1:8; unsigned int v2:9; unsigned long long v3:8; };
struct BFu8s_BFu9i_BFu8s { unsigned short v1:8; unsigned int v2:9; unsigned short v3:8; };
struct BFu8s_BFu9i_BFu9i { unsigned short v1:8; unsigned int v2:9; unsigned int v3:9; };
struct BFu8s_BFu9i_BFu9ll { unsigned short v1:8; unsigned int v2:9; unsigned long long v3:9; };
struct BFu8s_BFu9i_BFu9s { unsigned short v1:8; unsigned int v2:9; unsigned short v3:9; };
struct BFu8s_BFu9i_C { unsigned short v1:8; unsigned int v2:9; char v3; };
struct BFu8s_BFu9i_D { unsigned short v1:8; unsigned int v2:9; double v3; };
struct BFu8s_BFu9i_F { unsigned short v1:8; unsigned int v2:9; float v3; };
struct BFu8s_BFu9i_I { unsigned short v1:8; unsigned int v2:9; int v3; };
struct BFu8s_BFu9i_Ip { unsigned short v1:8; unsigned int v2:9; int * v3; };
struct BFu8s_BFu9i_L { unsigned short v1:8; unsigned int v2:9; long long v3; };
struct BFu8s_BFu9i_S { unsigned short v1:8; unsigned int v2:9; short v3; };
struct BFu8s_BFu9i_Uc { unsigned short v1:8; unsigned int v2:9; unsigned char v3; };
struct BFu8s_BFu9i_Ui { unsigned short v1:8; unsigned int v2:9; unsigned int v3; };
struct BFu8s_BFu9i_Ul { unsigned short v1:8; unsigned int v2:9; unsigned long long v3; };
struct BFu8s_BFu9i_Us { unsigned short v1:8; unsigned int v2:9; unsigned short v3; };
struct BFu8s_BFu9i_Vp { unsigned short v1:8; unsigned int v2:9; void * v3; };
struct BFu8s_BFu9ll { unsigned short v1:8; unsigned long long v2:9; };
struct BFu8s_BFu9ll_BFu15i { unsigned short v1:8; unsigned long long v2:9; unsigned int v3:15; };
struct BFu8s_BFu9ll_BFu15ll { unsigned short v1:8; unsigned long long v2:9; unsigned long long v3:15; };
struct BFu8s_BFu9ll_BFu15s { unsigned short v1:8; unsigned long long v2:9; unsigned short v3:15; };
struct BFu8s_BFu9ll_BFu16i { unsigned short v1:8; unsigned long long v2:9; unsigned int v3:16; };
struct BFu8s_BFu9ll_BFu16ll { unsigned short v1:8; unsigned long long v2:9; unsigned long long v3:16; };
struct BFu8s_BFu9ll_BFu16s { unsigned short v1:8; unsigned long long v2:9; unsigned short v3:16; };
struct BFu8s_BFu9ll_BFu17i { unsigned short v1:8; unsigned long long v2:9; unsigned int v3:17; };
struct BFu8s_BFu9ll_BFu17ll { unsigned short v1:8; unsigned long long v2:9; unsigned long long v3:17; };
struct BFu8s_BFu9ll_BFu1c { unsigned short v1:8; unsigned long long v2:9; unsigned char v3:1; };
struct BFu8s_BFu9ll_BFu1i { unsigned short v1:8; unsigned long long v2:9; unsigned int v3:1; };
struct BFu8s_BFu9ll_BFu1ll { unsigned short v1:8; unsigned long long v2:9; unsigned long long v3:1; };
struct BFu8s_BFu9ll_BFu1s { unsigned short v1:8; unsigned long long v2:9; unsigned short v3:1; };
struct BFu8s_BFu9ll_BFu31i { unsigned short v1:8; unsigned long long v2:9; unsigned int v3:31; };
struct BFu8s_BFu9ll_BFu31ll { unsigned short v1:8; unsigned long long v2:9; unsigned long long v3:31; };
struct BFu8s_BFu9ll_BFu32i { unsigned short v1:8; unsigned long long v2:9; unsigned int v3:32; };
struct BFu8s_BFu9ll_BFu32ll { unsigned short v1:8; unsigned long long v2:9; unsigned long long v3:32; };
struct BFu8s_BFu9ll_BFu33 { unsigned short v1:8; unsigned long long v2:9; unsigned long long v3:33; };
struct BFu8s_BFu9ll_BFu7c { unsigned short v1:8; unsigned long long v2:9; unsigned char v3:7; };
struct BFu8s_BFu9ll_BFu7i { unsigned short v1:8; unsigned long long v2:9; unsigned int v3:7; };
struct BFu8s_BFu9ll_BFu7ll { unsigned short v1:8; unsigned long long v2:9; unsigned long long v3:7; };
struct BFu8s_BFu9ll_BFu7s { unsigned short v1:8; unsigned long long v2:9; unsigned short v3:7; };
struct BFu8s_BFu9ll_BFu8c { unsigned short v1:8; unsigned long long v2:9; unsigned char v3:8; };
struct BFu8s_BFu9ll_BFu8i { unsigned short v1:8; unsigned long long v2:9; unsigned int v3:8; };
struct BFu8s_BFu9ll_BFu8ll { unsigned short v1:8; unsigned long long v2:9; unsigned long long v3:8; };
struct BFu8s_BFu9ll_BFu8s { unsigned short v1:8; unsigned long long v2:9; unsigned short v3:8; };
struct BFu8s_BFu9ll_BFu9i { unsigned short v1:8; unsigned long long v2:9; unsigned int v3:9; };
struct BFu8s_BFu9ll_BFu9ll { unsigned short v1:8; unsigned long long v2:9; unsigned long long v3:9; };
struct BFu8s_BFu9ll_BFu9s { unsigned short v1:8; unsigned long long v2:9; unsigned short v3:9; };
struct BFu8s_BFu9ll_C { unsigned short v1:8; unsigned long long v2:9; char v3; };
struct BFu8s_BFu9ll_D { unsigned short v1:8; unsigned long long v2:9; double v3; };
struct BFu8s_BFu9ll_F { unsigned short v1:8; unsigned long long v2:9; float v3; };
struct BFu8s_BFu9ll_I { unsigned short v1:8; unsigned long long v2:9; int v3; };
struct BFu8s_BFu9ll_Ip { unsigned short v1:8; unsigned long long v2:9; int * v3; };
struct BFu8s_BFu9ll_L { unsigned short v1:8; unsigned long long v2:9; long long v3; };
struct BFu8s_BFu9ll_S { unsigned short v1:8; unsigned long long v2:9; short v3; };
struct BFu8s_BFu9ll_Uc { unsigned short v1:8; unsigned long long v2:9; unsigned char v3; };
struct BFu8s_BFu9ll_Ui { unsigned short v1:8; unsigned long long v2:9; unsigned int v3; };
struct BFu8s_BFu9ll_Ul { unsigned short v1:8; unsigned long long v2:9; unsigned long long v3; };
struct BFu8s_BFu9ll_Us { unsigned short v1:8; unsigned long long v2:9; unsigned short v3; };
struct BFu8s_BFu9ll_Vp { unsigned short v1:8; unsigned long long v2:9; void * v3; };
struct BFu8s_BFu9s { unsigned short v1:8; unsigned short v2:9; };
struct BFu8s_BFu9s_BFu15i { unsigned short v1:8; unsigned short v2:9; unsigned int v3:15; };
struct BFu8s_BFu9s_BFu15ll { unsigned short v1:8; unsigned short v2:9; unsigned long long v3:15; };
struct BFu8s_BFu9s_BFu15s { unsigned short v1:8; unsigned short v2:9; unsigned short v3:15; };
struct BFu8s_BFu9s_BFu16i { unsigned short v1:8; unsigned short v2:9; unsigned int v3:16; };
struct BFu8s_BFu9s_BFu16ll { unsigned short v1:8; unsigned short v2:9; unsigned long long v3:16; };
struct BFu8s_BFu9s_BFu16s { unsigned short v1:8; unsigned short v2:9; unsigned short v3:16; };
struct BFu8s_BFu9s_BFu17i { unsigned short v1:8; unsigned short v2:9; unsigned int v3:17; };
struct BFu8s_BFu9s_BFu17ll { unsigned short v1:8; unsigned short v2:9; unsigned long long v3:17; };
struct BFu8s_BFu9s_BFu1c { unsigned short v1:8; unsigned short v2:9; unsigned char v3:1; };
struct BFu8s_BFu9s_BFu1i { unsigned short v1:8; unsigned short v2:9; unsigned int v3:1; };
struct BFu8s_BFu9s_BFu1ll { unsigned short v1:8; unsigned short v2:9; unsigned long long v3:1; };
struct BFu8s_BFu9s_BFu1s { unsigned short v1:8; unsigned short v2:9; unsigned short v3:1; };
struct BFu8s_BFu9s_BFu31i { unsigned short v1:8; unsigned short v2:9; unsigned int v3:31; };
struct BFu8s_BFu9s_BFu31ll { unsigned short v1:8; unsigned short v2:9; unsigned long long v3:31; };
struct BFu8s_BFu9s_BFu32i { unsigned short v1:8; unsigned short v2:9; unsigned int v3:32; };
struct BFu8s_BFu9s_BFu32ll { unsigned short v1:8; unsigned short v2:9; unsigned long long v3:32; };
struct BFu8s_BFu9s_BFu33 { unsigned short v1:8; unsigned short v2:9; unsigned long long v3:33; };
struct BFu8s_BFu9s_BFu7c { unsigned short v1:8; unsigned short v2:9; unsigned char v3:7; };
struct BFu8s_BFu9s_BFu7i { unsigned short v1:8; unsigned short v2:9; unsigned int v3:7; };
struct BFu8s_BFu9s_BFu7ll { unsigned short v1:8; unsigned short v2:9; unsigned long long v3:7; };
struct BFu8s_BFu9s_BFu7s { unsigned short v1:8; unsigned short v2:9; unsigned short v3:7; };
struct BFu8s_BFu9s_BFu8c { unsigned short v1:8; unsigned short v2:9; unsigned char v3:8; };
struct BFu8s_BFu9s_BFu8i { unsigned short v1:8; unsigned short v2:9; unsigned int v3:8; };
struct BFu8s_BFu9s_BFu8ll { unsigned short v1:8; unsigned short v2:9; unsigned long long v3:8; };
struct BFu8s_BFu9s_BFu8s { unsigned short v1:8; unsigned short v2:9; unsigned short v3:8; };
struct BFu8s_BFu9s_BFu9i { unsigned short v1:8; unsigned short v2:9; unsigned int v3:9; };
struct BFu8s_BFu9s_BFu9ll { unsigned short v1:8; unsigned short v2:9; unsigned long long v3:9; };
struct BFu8s_BFu9s_BFu9s { unsigned short v1:8; unsigned short v2:9; unsigned short v3:9; };
struct BFu8s_BFu9s_C { unsigned short v1:8; unsigned short v2:9; char v3; };
struct BFu8s_BFu9s_D { unsigned short v1:8; unsigned short v2:9; double v3; };
struct BFu8s_BFu9s_F { unsigned short v1:8; unsigned short v2:9; float v3; };
struct BFu8s_BFu9s_I { unsigned short v1:8; unsigned short v2:9; int v3; };
struct BFu8s_BFu9s_Ip { unsigned short v1:8; unsigned short v2:9; int * v3; };
struct BFu8s_BFu9s_L { unsigned short v1:8; unsigned short v2:9; long long v3; };
struct BFu8s_BFu9s_S { unsigned short v1:8; unsigned short v2:9; short v3; };
struct BFu8s_BFu9s_Uc { unsigned short v1:8; unsigned short v2:9; unsigned char v3; };
struct BFu8s_BFu9s_Ui { unsigned short v1:8; unsigned short v2:9; unsigned int v3; };
struct BFu8s_BFu9s_Ul { unsigned short v1:8; unsigned short v2:9; unsigned long long v3; };
struct BFu8s_BFu9s_Us { unsigned short v1:8; unsigned short v2:9; unsigned short v3; };
struct BFu8s_BFu9s_Vp { unsigned short v1:8; unsigned short v2:9; void * v3; };
struct BFu8s_C { unsigned short v1:8; char v2; };
struct BFu8s_C_BFu15i { unsigned short v1:8; char v2; unsigned int v3:15; };
struct BFu8s_C_BFu15ll { unsigned short v1:8; char v2; unsigned long long v3:15; };
struct BFu8s_C_BFu15s { unsigned short v1:8; char v2; unsigned short v3:15; };
struct BFu8s_C_BFu16i { unsigned short v1:8; char v2; unsigned int v3:16; };
struct BFu8s_C_BFu16ll { unsigned short v1:8; char v2; unsigned long long v3:16; };
struct BFu8s_C_BFu16s { unsigned short v1:8; char v2; unsigned short v3:16; };
struct BFu8s_C_BFu17i { unsigned short v1:8; char v2; unsigned int v3:17; };
struct BFu8s_C_BFu17ll { unsigned short v1:8; char v2; unsigned long long v3:17; };
struct BFu8s_C_BFu1c { unsigned short v1:8; char v2; unsigned char v3:1; };
struct BFu8s_C_BFu1i { unsigned short v1:8; char v2; unsigned int v3:1; };
struct BFu8s_C_BFu1ll { unsigned short v1:8; char v2; unsigned long long v3:1; };
struct BFu8s_C_BFu1s { unsigned short v1:8; char v2; unsigned short v3:1; };
struct BFu8s_C_BFu31i { unsigned short v1:8; char v2; unsigned int v3:31; };
struct BFu8s_C_BFu31ll { unsigned short v1:8; char v2; unsigned long long v3:31; };
struct BFu8s_C_BFu32i { unsigned short v1:8; char v2; unsigned int v3:32; };
struct BFu8s_C_BFu32ll { unsigned short v1:8; char v2; unsigned long long v3:32; };
struct BFu8s_C_BFu33 { unsigned short v1:8; char v2; unsigned long long v3:33; };
struct BFu8s_C_BFu7c { unsigned short v1:8; char v2; unsigned char v3:7; };
struct BFu8s_C_BFu7i { unsigned short v1:8; char v2; unsigned int v3:7; };
struct BFu8s_C_BFu7ll { unsigned short v1:8; char v2; unsigned long long v3:7; };
struct BFu8s_C_BFu7s { unsigned short v1:8; char v2; unsigned short v3:7; };
struct BFu8s_C_BFu8c { unsigned short v1:8; char v2; unsigned char v3:8; };
struct BFu8s_C_BFu8i { unsigned short v1:8; char v2; unsigned int v3:8; };
struct BFu8s_C_BFu8ll { unsigned short v1:8; char v2; unsigned long long v3:8; };
struct BFu8s_C_BFu8s { unsigned short v1:8; char v2; unsigned short v3:8; };
struct BFu8s_C_BFu9i { unsigned short v1:8; char v2; unsigned int v3:9; };
struct BFu8s_C_BFu9ll { unsigned short v1:8; char v2; unsigned long long v3:9; };
struct BFu8s_C_BFu9s { unsigned short v1:8; char v2; unsigned short v3:9; };
struct BFu8s_C_C { unsigned short v1:8; char v2; char v3; };
struct BFu8s_C_D { unsigned short v1:8; char v2; double v3; };
struct BFu8s_C_F { unsigned short v1:8; char v2; float v3; };
struct BFu8s_C_I { unsigned short v1:8; char v2; int v3; };
struct BFu8s_C_Ip { unsigned short v1:8; char v2; int * v3; };
struct BFu8s_C_L { unsigned short v1:8; char v2; long long v3; };
struct BFu8s_C_S { unsigned short v1:8; char v2; short v3; };
struct BFu8s_C_Uc { unsigned short v1:8; char v2; unsigned char v3; };
struct BFu8s_C_Ui { unsigned short v1:8; char v2; unsigned int v3; };
struct BFu8s_C_Ul { unsigned short v1:8; char v2; unsigned long long v3; };
struct BFu8s_C_Us { unsigned short v1:8; char v2; unsigned short v3; };
struct BFu8s_C_Vp { unsigned short v1:8; char v2; void * v3; };
struct BFu8s_D { unsigned short v1:8; double v2; };
struct BFu8s_D_BFu15i { unsigned short v1:8; double v2; unsigned int v3:15; };
struct BFu8s_D_BFu15ll { unsigned short v1:8; double v2; unsigned long long v3:15; };
struct BFu8s_D_BFu15s { unsigned short v1:8; double v2; unsigned short v3:15; };
struct BFu8s_D_BFu16i { unsigned short v1:8; double v2; unsigned int v3:16; };
struct BFu8s_D_BFu16ll { unsigned short v1:8; double v2; unsigned long long v3:16; };
struct BFu8s_D_BFu16s { unsigned short v1:8; double v2; unsigned short v3:16; };
struct BFu8s_D_BFu17i { unsigned short v1:8; double v2; unsigned int v3:17; };
struct BFu8s_D_BFu17ll { unsigned short v1:8; double v2; unsigned long long v3:17; };
struct BFu8s_D_BFu1c { unsigned short v1:8; double v2; unsigned char v3:1; };
struct BFu8s_D_BFu1i { unsigned short v1:8; double v2; unsigned int v3:1; };
struct BFu8s_D_BFu1ll { unsigned short v1:8; double v2; unsigned long long v3:1; };
struct BFu8s_D_BFu1s { unsigned short v1:8; double v2; unsigned short v3:1; };
struct BFu8s_D_BFu31i { unsigned short v1:8; double v2; unsigned int v3:31; };
struct BFu8s_D_BFu31ll { unsigned short v1:8; double v2; unsigned long long v3:31; };
struct BFu8s_D_BFu32i { unsigned short v1:8; double v2; unsigned int v3:32; };
struct BFu8s_D_BFu32ll { unsigned short v1:8; double v2; unsigned long long v3:32; };
struct BFu8s_D_BFu33 { unsigned short v1:8; double v2; unsigned long long v3:33; };
struct BFu8s_D_BFu7c { unsigned short v1:8; double v2; unsigned char v3:7; };
struct BFu8s_D_BFu7i { unsigned short v1:8; double v2; unsigned int v3:7; };
struct BFu8s_D_BFu7ll { unsigned short v1:8; double v2; unsigned long long v3:7; };
struct BFu8s_D_BFu7s { unsigned short v1:8; double v2; unsigned short v3:7; };
struct BFu8s_D_BFu8c { unsigned short v1:8; double v2; unsigned char v3:8; };
struct BFu8s_D_BFu8i { unsigned short v1:8; double v2; unsigned int v3:8; };
struct BFu8s_D_BFu8ll { unsigned short v1:8; double v2; unsigned long long v3:8; };
struct BFu8s_D_BFu8s { unsigned short v1:8; double v2; unsigned short v3:8; };
struct BFu8s_D_BFu9i { unsigned short v1:8; double v2; unsigned int v3:9; };
struct BFu8s_D_BFu9ll { unsigned short v1:8; double v2; unsigned long long v3:9; };
struct BFu8s_D_BFu9s { unsigned short v1:8; double v2; unsigned short v3:9; };
struct BFu8s_D_C { unsigned short v1:8; double v2; char v3; };
struct BFu8s_D_D { unsigned short v1:8; double v2; double v3; };
struct BFu8s_D_F { unsigned short v1:8; double v2; float v3; };
struct BFu8s_D_I { unsigned short v1:8; double v2; int v3; };
struct BFu8s_D_Ip { unsigned short v1:8; double v2; int * v3; };
struct BFu8s_D_L { unsigned short v1:8; double v2; long long v3; };
struct BFu8s_D_S { unsigned short v1:8; double v2; short v3; };
struct BFu8s_D_Uc { unsigned short v1:8; double v2; unsigned char v3; };
struct BFu8s_D_Ui { unsigned short v1:8; double v2; unsigned int v3; };
struct BFu8s_D_Ul { unsigned short v1:8; double v2; unsigned long long v3; };
struct BFu8s_D_Us { unsigned short v1:8; double v2; unsigned short v3; };
struct BFu8s_D_Vp { unsigned short v1:8; double v2; void * v3; };
struct BFu8s_F { unsigned short v1:8; float v2; };
struct BFu8s_F_BFu15i { unsigned short v1:8; float v2; unsigned int v3:15; };
struct BFu8s_F_BFu15ll { unsigned short v1:8; float v2; unsigned long long v3:15; };
struct BFu8s_F_BFu15s { unsigned short v1:8; float v2; unsigned short v3:15; };
struct BFu8s_F_BFu16i { unsigned short v1:8; float v2; unsigned int v3:16; };
struct BFu8s_F_BFu16ll { unsigned short v1:8; float v2; unsigned long long v3:16; };
struct BFu8s_F_BFu16s { unsigned short v1:8; float v2; unsigned short v3:16; };
struct BFu8s_F_BFu17i { unsigned short v1:8; float v2; unsigned int v3:17; };
struct BFu8s_F_BFu17ll { unsigned short v1:8; float v2; unsigned long long v3:17; };
struct BFu8s_F_BFu1c { unsigned short v1:8; float v2; unsigned char v3:1; };
struct BFu8s_F_BFu1i { unsigned short v1:8; float v2; unsigned int v3:1; };
struct BFu8s_F_BFu1ll { unsigned short v1:8; float v2; unsigned long long v3:1; };
struct BFu8s_F_BFu1s { unsigned short v1:8; float v2; unsigned short v3:1; };
struct BFu8s_F_BFu31i { unsigned short v1:8; float v2; unsigned int v3:31; };
struct BFu8s_F_BFu31ll { unsigned short v1:8; float v2; unsigned long long v3:31; };
struct BFu8s_F_BFu32i { unsigned short v1:8; float v2; unsigned int v3:32; };
struct BFu8s_F_BFu32ll { unsigned short v1:8; float v2; unsigned long long v3:32; };
struct BFu8s_F_BFu33 { unsigned short v1:8; float v2; unsigned long long v3:33; };
struct BFu8s_F_BFu7c { unsigned short v1:8; float v2; unsigned char v3:7; };
struct BFu8s_F_BFu7i { unsigned short v1:8; float v2; unsigned int v3:7; };
struct BFu8s_F_BFu7ll { unsigned short v1:8; float v2; unsigned long long v3:7; };
struct BFu8s_F_BFu7s { unsigned short v1:8; float v2; unsigned short v3:7; };
struct BFu8s_F_BFu8c { unsigned short v1:8; float v2; unsigned char v3:8; };
struct BFu8s_F_BFu8i { unsigned short v1:8; float v2; unsigned int v3:8; };
struct BFu8s_F_BFu8ll { unsigned short v1:8; float v2; unsigned long long v3:8; };
struct BFu8s_F_BFu8s { unsigned short v1:8; float v2; unsigned short v3:8; };
struct BFu8s_F_BFu9i { unsigned short v1:8; float v2; unsigned int v3:9; };
struct BFu8s_F_BFu9ll { unsigned short v1:8; float v2; unsigned long long v3:9; };
struct BFu8s_F_BFu9s { unsigned short v1:8; float v2; unsigned short v3:9; };
struct BFu8s_F_C { unsigned short v1:8; float v2; char v3; };
struct BFu8s_F_D { unsigned short v1:8; float v2; double v3; };
struct BFu8s_F_F { unsigned short v1:8; float v2; float v3; };
struct BFu8s_F_I { unsigned short v1:8; float v2; int v3; };
struct BFu8s_F_Ip { unsigned short v1:8; float v2; int * v3; };
struct BFu8s_F_L { unsigned short v1:8; float v2; long long v3; };
struct BFu8s_F_S { unsigned short v1:8; float v2; short v3; };
struct BFu8s_F_Uc { unsigned short v1:8; float v2; unsigned char v3; };
struct BFu8s_F_Ui { unsigned short v1:8; float v2; unsigned int v3; };
struct BFu8s_F_Ul { unsigned short v1:8; float v2; unsigned long long v3; };
struct BFu8s_F_Us { unsigned short v1:8; float v2; unsigned short v3; };
struct BFu8s_F_Vp { unsigned short v1:8; float v2; void * v3; };
struct BFu8s_I { unsigned short v1:8; int v2; };
struct BFu8s_I_BFu15i { unsigned short v1:8; int v2; unsigned int v3:15; };
struct BFu8s_I_BFu15ll { unsigned short v1:8; int v2; unsigned long long v3:15; };
struct BFu8s_I_BFu15s { unsigned short v1:8; int v2; unsigned short v3:15; };
struct BFu8s_I_BFu16i { unsigned short v1:8; int v2; unsigned int v3:16; };
struct BFu8s_I_BFu16ll { unsigned short v1:8; int v2; unsigned long long v3:16; };
struct BFu8s_I_BFu16s { unsigned short v1:8; int v2; unsigned short v3:16; };
struct BFu8s_I_BFu17i { unsigned short v1:8; int v2; unsigned int v3:17; };
struct BFu8s_I_BFu17ll { unsigned short v1:8; int v2; unsigned long long v3:17; };
struct BFu8s_I_BFu1c { unsigned short v1:8; int v2; unsigned char v3:1; };
struct BFu8s_I_BFu1i { unsigned short v1:8; int v2; unsigned int v3:1; };
struct BFu8s_I_BFu1ll { unsigned short v1:8; int v2; unsigned long long v3:1; };
struct BFu8s_I_BFu1s { unsigned short v1:8; int v2; unsigned short v3:1; };
struct BFu8s_I_BFu31i { unsigned short v1:8; int v2; unsigned int v3:31; };
struct BFu8s_I_BFu31ll { unsigned short v1:8; int v2; unsigned long long v3:31; };
struct BFu8s_I_BFu32i { unsigned short v1:8; int v2; unsigned int v3:32; };
struct BFu8s_I_BFu32ll { unsigned short v1:8; int v2; unsigned long long v3:32; };
struct BFu8s_I_BFu33 { unsigned short v1:8; int v2; unsigned long long v3:33; };
struct BFu8s_I_BFu7c { unsigned short v1:8; int v2; unsigned char v3:7; };
struct BFu8s_I_BFu7i { unsigned short v1:8; int v2; unsigned int v3:7; };
struct BFu8s_I_BFu7ll { unsigned short v1:8; int v2; unsigned long long v3:7; };
struct BFu8s_I_BFu7s { unsigned short v1:8; int v2; unsigned short v3:7; };
struct BFu8s_I_BFu8c { unsigned short v1:8; int v2; unsigned char v3:8; };
struct BFu8s_I_BFu8i { unsigned short v1:8; int v2; unsigned int v3:8; };
struct BFu8s_I_BFu8ll { unsigned short v1:8; int v2; unsigned long long v3:8; };
struct BFu8s_I_BFu8s { unsigned short v1:8; int v2; unsigned short v3:8; };
struct BFu8s_I_BFu9i { unsigned short v1:8; int v2; unsigned int v3:9; };
struct BFu8s_I_BFu9ll { unsigned short v1:8; int v2; unsigned long long v3:9; };
struct BFu8s_I_BFu9s { unsigned short v1:8; int v2; unsigned short v3:9; };
struct BFu8s_I_C { unsigned short v1:8; int v2; char v3; };
struct BFu8s_I_D { unsigned short v1:8; int v2; double v3; };
struct BFu8s_I_F { unsigned short v1:8; int v2; float v3; };
struct BFu8s_I_I { unsigned short v1:8; int v2; int v3; };
struct BFu8s_I_Ip { unsigned short v1:8; int v2; int * v3; };
struct BFu8s_I_L { unsigned short v1:8; int v2; long long v3; };
struct BFu8s_I_S { unsigned short v1:8; int v2; short v3; };
struct BFu8s_I_Uc { unsigned short v1:8; int v2; unsigned char v3; };
struct BFu8s_I_Ui { unsigned short v1:8; int v2; unsigned int v3; };
struct BFu8s_I_Ul { unsigned short v1:8; int v2; unsigned long long v3; };
struct BFu8s_I_Us { unsigned short v1:8; int v2; unsigned short v3; };
struct BFu8s_I_Vp { unsigned short v1:8; int v2; void * v3; };
struct BFu8s_Ip { unsigned short v1:8; int * v2; };
struct BFu8s_Ip_BFu15i { unsigned short v1:8; int * v2; unsigned int v3:15; };
struct BFu8s_Ip_BFu15ll { unsigned short v1:8; int * v2; unsigned long long v3:15; };
struct BFu8s_Ip_BFu15s { unsigned short v1:8; int * v2; unsigned short v3:15; };
struct BFu8s_Ip_BFu16i { unsigned short v1:8; int * v2; unsigned int v3:16; };
struct BFu8s_Ip_BFu16ll { unsigned short v1:8; int * v2; unsigned long long v3:16; };
struct BFu8s_Ip_BFu16s { unsigned short v1:8; int * v2; unsigned short v3:16; };
struct BFu8s_Ip_BFu17i { unsigned short v1:8; int * v2; unsigned int v3:17; };
struct BFu8s_Ip_BFu17ll { unsigned short v1:8; int * v2; unsigned long long v3:17; };
struct BFu8s_Ip_BFu1c { unsigned short v1:8; int * v2; unsigned char v3:1; };
struct BFu8s_Ip_BFu1i { unsigned short v1:8; int * v2; unsigned int v3:1; };
struct BFu8s_Ip_BFu1ll { unsigned short v1:8; int * v2; unsigned long long v3:1; };
struct BFu8s_Ip_BFu1s { unsigned short v1:8; int * v2; unsigned short v3:1; };
struct BFu8s_Ip_BFu31i { unsigned short v1:8; int * v2; unsigned int v3:31; };
struct BFu8s_Ip_BFu31ll { unsigned short v1:8; int * v2; unsigned long long v3:31; };
struct BFu8s_Ip_BFu32i { unsigned short v1:8; int * v2; unsigned int v3:32; };
struct BFu8s_Ip_BFu32ll { unsigned short v1:8; int * v2; unsigned long long v3:32; };
struct BFu8s_Ip_BFu33 { unsigned short v1:8; int * v2; unsigned long long v3:33; };
struct BFu8s_Ip_BFu7c { unsigned short v1:8; int * v2; unsigned char v3:7; };
struct BFu8s_Ip_BFu7i { unsigned short v1:8; int * v2; unsigned int v3:7; };
struct BFu8s_Ip_BFu7ll { unsigned short v1:8; int * v2; unsigned long long v3:7; };
struct BFu8s_Ip_BFu7s { unsigned short v1:8; int * v2; unsigned short v3:7; };
struct BFu8s_Ip_BFu8c { unsigned short v1:8; int * v2; unsigned char v3:8; };
struct BFu8s_Ip_BFu8i { unsigned short v1:8; int * v2; unsigned int v3:8; };
struct BFu8s_Ip_BFu8ll { unsigned short v1:8; int * v2; unsigned long long v3:8; };
struct BFu8s_Ip_BFu8s { unsigned short v1:8; int * v2; unsigned short v3:8; };
struct BFu8s_Ip_BFu9i { unsigned short v1:8; int * v2; unsigned int v3:9; };
struct BFu8s_Ip_BFu9ll { unsigned short v1:8; int * v2; unsigned long long v3:9; };
struct BFu8s_Ip_BFu9s { unsigned short v1:8; int * v2; unsigned short v3:9; };
struct BFu8s_Ip_C { unsigned short v1:8; int * v2; char v3; };
struct BFu8s_Ip_D { unsigned short v1:8; int * v2; double v3; };
struct BFu8s_Ip_F { unsigned short v1:8; int * v2; float v3; };
struct BFu8s_Ip_I { unsigned short v1:8; int * v2; int v3; };
struct BFu8s_Ip_Ip { unsigned short v1:8; int * v2; int * v3; };
struct BFu8s_Ip_L { unsigned short v1:8; int * v2; long long v3; };
struct BFu8s_Ip_S { unsigned short v1:8; int * v2; short v3; };
struct BFu8s_Ip_Uc { unsigned short v1:8; int * v2; unsigned char v3; };
struct BFu8s_Ip_Ui { unsigned short v1:8; int * v2; unsigned int v3; };
struct BFu8s_Ip_Ul { unsigned short v1:8; int * v2; unsigned long long v3; };
struct BFu8s_Ip_Us { unsigned short v1:8; int * v2; unsigned short v3; };
struct BFu8s_Ip_Vp { unsigned short v1:8; int * v2; void * v3; };
struct BFu8s_L { unsigned short v1:8; long long v2; };
struct BFu8s_L_BFu15i { unsigned short v1:8; long long v2; unsigned int v3:15; };
struct BFu8s_L_BFu15ll { unsigned short v1:8; long long v2; unsigned long long v3:15; };
struct BFu8s_L_BFu15s { unsigned short v1:8; long long v2; unsigned short v3:15; };
struct BFu8s_L_BFu16i { unsigned short v1:8; long long v2; unsigned int v3:16; };
struct BFu8s_L_BFu16ll { unsigned short v1:8; long long v2; unsigned long long v3:16; };
struct BFu8s_L_BFu16s { unsigned short v1:8; long long v2; unsigned short v3:16; };
struct BFu8s_L_BFu17i { unsigned short v1:8; long long v2; unsigned int v3:17; };
struct BFu8s_L_BFu17ll { unsigned short v1:8; long long v2; unsigned long long v3:17; };
struct BFu8s_L_BFu1c { unsigned short v1:8; long long v2; unsigned char v3:1; };
struct BFu8s_L_BFu1i { unsigned short v1:8; long long v2; unsigned int v3:1; };
struct BFu8s_L_BFu1ll { unsigned short v1:8; long long v2; unsigned long long v3:1; };
struct BFu8s_L_BFu1s { unsigned short v1:8; long long v2; unsigned short v3:1; };
struct BFu8s_L_BFu31i { unsigned short v1:8; long long v2; unsigned int v3:31; };
struct BFu8s_L_BFu31ll { unsigned short v1:8; long long v2; unsigned long long v3:31; };
struct BFu8s_L_BFu32i { unsigned short v1:8; long long v2; unsigned int v3:32; };
struct BFu8s_L_BFu32ll { unsigned short v1:8; long long v2; unsigned long long v3:32; };
struct BFu8s_L_BFu33 { unsigned short v1:8; long long v2; unsigned long long v3:33; };
struct BFu8s_L_BFu7c { unsigned short v1:8; long long v2; unsigned char v3:7; };
struct BFu8s_L_BFu7i { unsigned short v1:8; long long v2; unsigned int v3:7; };
struct BFu8s_L_BFu7ll { unsigned short v1:8; long long v2; unsigned long long v3:7; };
struct BFu8s_L_BFu7s { unsigned short v1:8; long long v2; unsigned short v3:7; };
struct BFu8s_L_BFu8c { unsigned short v1:8; long long v2; unsigned char v3:8; };
struct BFu8s_L_BFu8i { unsigned short v1:8; long long v2; unsigned int v3:8; };
struct BFu8s_L_BFu8ll { unsigned short v1:8; long long v2; unsigned long long v3:8; };
struct BFu8s_L_BFu8s { unsigned short v1:8; long long v2; unsigned short v3:8; };
struct BFu8s_L_BFu9i { unsigned short v1:8; long long v2; unsigned int v3:9; };
struct BFu8s_L_BFu9ll { unsigned short v1:8; long long v2; unsigned long long v3:9; };
struct BFu8s_L_BFu9s { unsigned short v1:8; long long v2; unsigned short v3:9; };
struct BFu8s_L_C { unsigned short v1:8; long long v2; char v3; };
struct BFu8s_L_D { unsigned short v1:8; long long v2; double v3; };
struct BFu8s_L_F { unsigned short v1:8; long long v2; float v3; };
struct BFu8s_L_I { unsigned short v1:8; long long v2; int v3; };
struct BFu8s_L_Ip { unsigned short v1:8; long long v2; int * v3; };
struct BFu8s_L_L { unsigned short v1:8; long long v2; long long v3; };
struct BFu8s_L_S { unsigned short v1:8; long long v2; short v3; };
struct BFu8s_L_Uc { unsigned short v1:8; long long v2; unsigned char v3; };
struct BFu8s_L_Ui { unsigned short v1:8; long long v2; unsigned int v3; };
struct BFu8s_L_Ul { unsigned short v1:8; long long v2; unsigned long long v3; };
struct BFu8s_L_Us { unsigned short v1:8; long long v2; unsigned short v3; };
struct BFu8s_L_Vp { unsigned short v1:8; long long v2; void * v3; };
struct BFu8s_S { unsigned short v1:8; short v2; };
struct BFu8s_S_BFu15i { unsigned short v1:8; short v2; unsigned int v3:15; };
struct BFu8s_S_BFu15ll { unsigned short v1:8; short v2; unsigned long long v3:15; };
struct BFu8s_S_BFu15s { unsigned short v1:8; short v2; unsigned short v3:15; };
struct BFu8s_S_BFu16i { unsigned short v1:8; short v2; unsigned int v3:16; };
struct BFu8s_S_BFu16ll { unsigned short v1:8; short v2; unsigned long long v3:16; };
struct BFu8s_S_BFu16s { unsigned short v1:8; short v2; unsigned short v3:16; };
struct BFu8s_S_BFu17i { unsigned short v1:8; short v2; unsigned int v3:17; };
struct BFu8s_S_BFu17ll { unsigned short v1:8; short v2; unsigned long long v3:17; };
struct BFu8s_S_BFu1c { unsigned short v1:8; short v2; unsigned char v3:1; };
struct BFu8s_S_BFu1i { unsigned short v1:8; short v2; unsigned int v3:1; };
struct BFu8s_S_BFu1ll { unsigned short v1:8; short v2; unsigned long long v3:1; };
struct BFu8s_S_BFu1s { unsigned short v1:8; short v2; unsigned short v3:1; };
struct BFu8s_S_BFu31i { unsigned short v1:8; short v2; unsigned int v3:31; };
struct BFu8s_S_BFu31ll { unsigned short v1:8; short v2; unsigned long long v3:31; };
struct BFu8s_S_BFu32i { unsigned short v1:8; short v2; unsigned int v3:32; };
struct BFu8s_S_BFu32ll { unsigned short v1:8; short v2; unsigned long long v3:32; };
struct BFu8s_S_BFu33 { unsigned short v1:8; short v2; unsigned long long v3:33; };
struct BFu8s_S_BFu7c { unsigned short v1:8; short v2; unsigned char v3:7; };
struct BFu8s_S_BFu7i { unsigned short v1:8; short v2; unsigned int v3:7; };
struct BFu8s_S_BFu7ll { unsigned short v1:8; short v2; unsigned long long v3:7; };
struct BFu8s_S_BFu7s { unsigned short v1:8; short v2; unsigned short v3:7; };
struct BFu8s_S_BFu8c { unsigned short v1:8; short v2; unsigned char v3:8; };
struct BFu8s_S_BFu8i { unsigned short v1:8; short v2; unsigned int v3:8; };
struct BFu8s_S_BFu8ll { unsigned short v1:8; short v2; unsigned long long v3:8; };
struct BFu8s_S_BFu8s { unsigned short v1:8; short v2; unsigned short v3:8; };
struct BFu8s_S_BFu9i { unsigned short v1:8; short v2; unsigned int v3:9; };
struct BFu8s_S_BFu9ll { unsigned short v1:8; short v2; unsigned long long v3:9; };
struct BFu8s_S_BFu9s { unsigned short v1:8; short v2; unsigned short v3:9; };
struct BFu8s_S_C { unsigned short v1:8; short v2; char v3; };
struct BFu8s_S_D { unsigned short v1:8; short v2; double v3; };
struct BFu8s_S_F { unsigned short v1:8; short v2; float v3; };
struct BFu8s_S_I { unsigned short v1:8; short v2; int v3; };
struct BFu8s_S_Ip { unsigned short v1:8; short v2; int * v3; };
struct BFu8s_S_L { unsigned short v1:8; short v2; long long v3; };
struct BFu8s_S_S { unsigned short v1:8; short v2; short v3; };
struct BFu8s_S_Uc { unsigned short v1:8; short v2; unsigned char v3; };
struct BFu8s_S_Ui { unsigned short v1:8; short v2; unsigned int v3; };
struct BFu8s_S_Ul { unsigned short v1:8; short v2; unsigned long long v3; };
struct BFu8s_S_Us { unsigned short v1:8; short v2; unsigned short v3; };
struct BFu8s_S_Vp { unsigned short v1:8; short v2; void * v3; };
struct BFu8s_Uc { unsigned short v1:8; unsigned char v2; };
struct BFu8s_Uc_BFu15i { unsigned short v1:8; unsigned char v2; unsigned int v3:15; };
struct BFu8s_Uc_BFu15ll { unsigned short v1:8; unsigned char v2; unsigned long long v3:15; };
struct BFu8s_Uc_BFu15s { unsigned short v1:8; unsigned char v2; unsigned short v3:15; };
struct BFu8s_Uc_BFu16i { unsigned short v1:8; unsigned char v2; unsigned int v3:16; };
struct BFu8s_Uc_BFu16ll { unsigned short v1:8; unsigned char v2; unsigned long long v3:16; };
struct BFu8s_Uc_BFu16s { unsigned short v1:8; unsigned char v2; unsigned short v3:16; };
struct BFu8s_Uc_BFu17i { unsigned short v1:8; unsigned char v2; unsigned int v3:17; };
struct BFu8s_Uc_BFu17ll { unsigned short v1:8; unsigned char v2; unsigned long long v3:17; };
struct BFu8s_Uc_BFu1c { unsigned short v1:8; unsigned char v2; unsigned char v3:1; };
struct BFu8s_Uc_BFu1i { unsigned short v1:8; unsigned char v2; unsigned int v3:1; };
struct BFu8s_Uc_BFu1ll { unsigned short v1:8; unsigned char v2; unsigned long long v3:1; };
struct BFu8s_Uc_BFu1s { unsigned short v1:8; unsigned char v2; unsigned short v3:1; };
struct BFu8s_Uc_BFu31i { unsigned short v1:8; unsigned char v2; unsigned int v3:31; };
struct BFu8s_Uc_BFu31ll { unsigned short v1:8; unsigned char v2; unsigned long long v3:31; };
struct BFu8s_Uc_BFu32i { unsigned short v1:8; unsigned char v2; unsigned int v3:32; };
struct BFu8s_Uc_BFu32ll { unsigned short v1:8; unsigned char v2; unsigned long long v3:32; };
struct BFu8s_Uc_BFu33 { unsigned short v1:8; unsigned char v2; unsigned long long v3:33; };
struct BFu8s_Uc_BFu7c { unsigned short v1:8; unsigned char v2; unsigned char v3:7; };
struct BFu8s_Uc_BFu7i { unsigned short v1:8; unsigned char v2; unsigned int v3:7; };
struct BFu8s_Uc_BFu7ll { unsigned short v1:8; unsigned char v2; unsigned long long v3:7; };
struct BFu8s_Uc_BFu7s { unsigned short v1:8; unsigned char v2; unsigned short v3:7; };
struct BFu8s_Uc_BFu8c { unsigned short v1:8; unsigned char v2; unsigned char v3:8; };
struct BFu8s_Uc_BFu8i { unsigned short v1:8; unsigned char v2; unsigned int v3:8; };
struct BFu8s_Uc_BFu8ll { unsigned short v1:8; unsigned char v2; unsigned long long v3:8; };
struct BFu8s_Uc_BFu8s { unsigned short v1:8; unsigned char v2; unsigned short v3:8; };
struct BFu8s_Uc_BFu9i { unsigned short v1:8; unsigned char v2; unsigned int v3:9; };
struct BFu8s_Uc_BFu9ll { unsigned short v1:8; unsigned char v2; unsigned long long v3:9; };
struct BFu8s_Uc_BFu9s { unsigned short v1:8; unsigned char v2; unsigned short v3:9; };
struct BFu8s_Uc_C { unsigned short v1:8; unsigned char v2; char v3; };
struct BFu8s_Uc_D { unsigned short v1:8; unsigned char v2; double v3; };
struct BFu8s_Uc_F { unsigned short v1:8; unsigned char v2; float v3; };
struct BFu8s_Uc_I { unsigned short v1:8; unsigned char v2; int v3; };
struct BFu8s_Uc_Ip { unsigned short v1:8; unsigned char v2; int * v3; };
struct BFu8s_Uc_L { unsigned short v1:8; unsigned char v2; long long v3; };
struct BFu8s_Uc_S { unsigned short v1:8; unsigned char v2; short v3; };
struct BFu8s_Uc_Uc { unsigned short v1:8; unsigned char v2; unsigned char v3; };
struct BFu8s_Uc_Ui { unsigned short v1:8; unsigned char v2; unsigned int v3; };
struct BFu8s_Uc_Ul { unsigned short v1:8; unsigned char v2; unsigned long long v3; };
struct BFu8s_Uc_Us { unsigned short v1:8; unsigned char v2; unsigned short v3; };
struct BFu8s_Uc_Vp { unsigned short v1:8; unsigned char v2; void * v3; };
struct BFu8s_Ui { unsigned short v1:8; unsigned int v2; };
struct BFu8s_Ui_BFu15i { unsigned short v1:8; unsigned int v2; unsigned int v3:15; };
struct BFu8s_Ui_BFu15ll { unsigned short v1:8; unsigned int v2; unsigned long long v3:15; };
struct BFu8s_Ui_BFu15s { unsigned short v1:8; unsigned int v2; unsigned short v3:15; };
struct BFu8s_Ui_BFu16i { unsigned short v1:8; unsigned int v2; unsigned int v3:16; };
struct BFu8s_Ui_BFu16ll { unsigned short v1:8; unsigned int v2; unsigned long long v3:16; };
struct BFu8s_Ui_BFu16s { unsigned short v1:8; unsigned int v2; unsigned short v3:16; };
struct BFu8s_Ui_BFu17i { unsigned short v1:8; unsigned int v2; unsigned int v3:17; };
struct BFu8s_Ui_BFu17ll { unsigned short v1:8; unsigned int v2; unsigned long long v3:17; };
struct BFu8s_Ui_BFu1c { unsigned short v1:8; unsigned int v2; unsigned char v3:1; };
struct BFu8s_Ui_BFu1i { unsigned short v1:8; unsigned int v2; unsigned int v3:1; };
struct BFu8s_Ui_BFu1ll { unsigned short v1:8; unsigned int v2; unsigned long long v3:1; };
struct BFu8s_Ui_BFu1s { unsigned short v1:8; unsigned int v2; unsigned short v3:1; };
struct BFu8s_Ui_BFu31i { unsigned short v1:8; unsigned int v2; unsigned int v3:31; };
struct BFu8s_Ui_BFu31ll { unsigned short v1:8; unsigned int v2; unsigned long long v3:31; };
struct BFu8s_Ui_BFu32i { unsigned short v1:8; unsigned int v2; unsigned int v3:32; };
struct BFu8s_Ui_BFu32ll { unsigned short v1:8; unsigned int v2; unsigned long long v3:32; };
struct BFu8s_Ui_BFu33 { unsigned short v1:8; unsigned int v2; unsigned long long v3:33; };
struct BFu8s_Ui_BFu7c { unsigned short v1:8; unsigned int v2; unsigned char v3:7; };
struct BFu8s_Ui_BFu7i { unsigned short v1:8; unsigned int v2; unsigned int v3:7; };
struct BFu8s_Ui_BFu7ll { unsigned short v1:8; unsigned int v2; unsigned long long v3:7; };
struct BFu8s_Ui_BFu7s { unsigned short v1:8; unsigned int v2; unsigned short v3:7; };
struct BFu8s_Ui_BFu8c { unsigned short v1:8; unsigned int v2; unsigned char v3:8; };
struct BFu8s_Ui_BFu8i { unsigned short v1:8; unsigned int v2; unsigned int v3:8; };
struct BFu8s_Ui_BFu8ll { unsigned short v1:8; unsigned int v2; unsigned long long v3:8; };
struct BFu8s_Ui_BFu8s { unsigned short v1:8; unsigned int v2; unsigned short v3:8; };
struct BFu8s_Ui_BFu9i { unsigned short v1:8; unsigned int v2; unsigned int v3:9; };
struct BFu8s_Ui_BFu9ll { unsigned short v1:8; unsigned int v2; unsigned long long v3:9; };
struct BFu8s_Ui_BFu9s { unsigned short v1:8; unsigned int v2; unsigned short v3:9; };
struct BFu8s_Ui_C { unsigned short v1:8; unsigned int v2; char v3; };
struct BFu8s_Ui_D { unsigned short v1:8; unsigned int v2; double v3; };
struct BFu8s_Ui_F { unsigned short v1:8; unsigned int v2; float v3; };
struct BFu8s_Ui_I { unsigned short v1:8; unsigned int v2; int v3; };
struct BFu8s_Ui_Ip { unsigned short v1:8; unsigned int v2; int * v3; };
struct BFu8s_Ui_L { unsigned short v1:8; unsigned int v2; long long v3; };
struct BFu8s_Ui_S { unsigned short v1:8; unsigned int v2; short v3; };
struct BFu8s_Ui_Uc { unsigned short v1:8; unsigned int v2; unsigned char v3; };
struct BFu8s_Ui_Ui { unsigned short v1:8; unsigned int v2; unsigned int v3; };
struct BFu8s_Ui_Ul { unsigned short v1:8; unsigned int v2; unsigned long long v3; };
struct BFu8s_Ui_Us { unsigned short v1:8; unsigned int v2; unsigned short v3; };
struct BFu8s_Ui_Vp { unsigned short v1:8; unsigned int v2; void * v3; };
struct BFu8s_Ul { unsigned short v1:8; unsigned long long v2; };
struct BFu8s_Ul_BFu15i { unsigned short v1:8; unsigned long long v2; unsigned int v3:15; };
struct BFu8s_Ul_BFu15ll { unsigned short v1:8; unsigned long long v2; unsigned long long v3:15; };
struct BFu8s_Ul_BFu15s { unsigned short v1:8; unsigned long long v2; unsigned short v3:15; };
struct BFu8s_Ul_BFu16i { unsigned short v1:8; unsigned long long v2; unsigned int v3:16; };
struct BFu8s_Ul_BFu16ll { unsigned short v1:8; unsigned long long v2; unsigned long long v3:16; };
struct BFu8s_Ul_BFu16s { unsigned short v1:8; unsigned long long v2; unsigned short v3:16; };
struct BFu8s_Ul_BFu17i { unsigned short v1:8; unsigned long long v2; unsigned int v3:17; };
struct BFu8s_Ul_BFu17ll { unsigned short v1:8; unsigned long long v2; unsigned long long v3:17; };
struct BFu8s_Ul_BFu1c { unsigned short v1:8; unsigned long long v2; unsigned char v3:1; };
struct BFu8s_Ul_BFu1i { unsigned short v1:8; unsigned long long v2; unsigned int v3:1; };
struct BFu8s_Ul_BFu1ll { unsigned short v1:8; unsigned long long v2; unsigned long long v3:1; };
struct BFu8s_Ul_BFu1s { unsigned short v1:8; unsigned long long v2; unsigned short v3:1; };
struct BFu8s_Ul_BFu31i { unsigned short v1:8; unsigned long long v2; unsigned int v3:31; };
struct BFu8s_Ul_BFu31ll { unsigned short v1:8; unsigned long long v2; unsigned long long v3:31; };
struct BFu8s_Ul_BFu32i { unsigned short v1:8; unsigned long long v2; unsigned int v3:32; };
struct BFu8s_Ul_BFu32ll { unsigned short v1:8; unsigned long long v2; unsigned long long v3:32; };
struct BFu8s_Ul_BFu33 { unsigned short v1:8; unsigned long long v2; unsigned long long v3:33; };
struct BFu8s_Ul_BFu7c { unsigned short v1:8; unsigned long long v2; unsigned char v3:7; };
struct BFu8s_Ul_BFu7i { unsigned short v1:8; unsigned long long v2; unsigned int v3:7; };
struct BFu8s_Ul_BFu7ll { unsigned short v1:8; unsigned long long v2; unsigned long long v3:7; };
struct BFu8s_Ul_BFu7s { unsigned short v1:8; unsigned long long v2; unsigned short v3:7; };
struct BFu8s_Ul_BFu8c { unsigned short v1:8; unsigned long long v2; unsigned char v3:8; };
struct BFu8s_Ul_BFu8i { unsigned short v1:8; unsigned long long v2; unsigned int v3:8; };
struct BFu8s_Ul_BFu8ll { unsigned short v1:8; unsigned long long v2; unsigned long long v3:8; };
struct BFu8s_Ul_BFu8s { unsigned short v1:8; unsigned long long v2; unsigned short v3:8; };
struct BFu8s_Ul_BFu9i { unsigned short v1:8; unsigned long long v2; unsigned int v3:9; };
struct BFu8s_Ul_BFu9ll { unsigned short v1:8; unsigned long long v2; unsigned long long v3:9; };
struct BFu8s_Ul_BFu9s { unsigned short v1:8; unsigned long long v2; unsigned short v3:9; };
struct BFu8s_Ul_C { unsigned short v1:8; unsigned long long v2; char v3; };
struct BFu8s_Ul_D { unsigned short v1:8; unsigned long long v2; double v3; };
struct BFu8s_Ul_F { unsigned short v1:8; unsigned long long v2; float v3; };
struct BFu8s_Ul_I { unsigned short v1:8; unsigned long long v2; int v3; };
struct BFu8s_Ul_Ip { unsigned short v1:8; unsigned long long v2; int * v3; };
struct BFu8s_Ul_L { unsigned short v1:8; unsigned long long v2; long long v3; };
struct BFu8s_Ul_S { unsigned short v1:8; unsigned long long v2; short v3; };
struct BFu8s_Ul_Uc { unsigned short v1:8; unsigned long long v2; unsigned char v3; };
struct BFu8s_Ul_Ui { unsigned short v1:8; unsigned long long v2; unsigned int v3; };
struct BFu8s_Ul_Ul { unsigned short v1:8; unsigned long long v2; unsigned long long v3; };
struct BFu8s_Ul_Us { unsigned short v1:8; unsigned long long v2; unsigned short v3; };
struct BFu8s_Ul_Vp { unsigned short v1:8; unsigned long long v2; void * v3; };
struct BFu8s_Us { unsigned short v1:8; unsigned short v2; };
struct BFu8s_Us_BFu15i { unsigned short v1:8; unsigned short v2; unsigned int v3:15; };
struct BFu8s_Us_BFu15ll { unsigned short v1:8; unsigned short v2; unsigned long long v3:15; };
struct BFu8s_Us_BFu15s { unsigned short v1:8; unsigned short v2; unsigned short v3:15; };
struct BFu8s_Us_BFu16i { unsigned short v1:8; unsigned short v2; unsigned int v3:16; };
struct BFu8s_Us_BFu16ll { unsigned short v1:8; unsigned short v2; unsigned long long v3:16; };
struct BFu8s_Us_BFu16s { unsigned short v1:8; unsigned short v2; unsigned short v3:16; };
struct BFu8s_Us_BFu17i { unsigned short v1:8; unsigned short v2; unsigned int v3:17; };
struct BFu8s_Us_BFu17ll { unsigned short v1:8; unsigned short v2; unsigned long long v3:17; };
struct BFu8s_Us_BFu1c { unsigned short v1:8; unsigned short v2; unsigned char v3:1; };
struct BFu8s_Us_BFu1i { unsigned short v1:8; unsigned short v2; unsigned int v3:1; };
struct BFu8s_Us_BFu1ll { unsigned short v1:8; unsigned short v2; unsigned long long v3:1; };
struct BFu8s_Us_BFu1s { unsigned short v1:8; unsigned short v2; unsigned short v3:1; };
struct BFu8s_Us_BFu31i { unsigned short v1:8; unsigned short v2; unsigned int v3:31; };
struct BFu8s_Us_BFu31ll { unsigned short v1:8; unsigned short v2; unsigned long long v3:31; };
struct BFu8s_Us_BFu32i { unsigned short v1:8; unsigned short v2; unsigned int v3:32; };
struct BFu8s_Us_BFu32ll { unsigned short v1:8; unsigned short v2; unsigned long long v3:32; };
struct BFu8s_Us_BFu33 { unsigned short v1:8; unsigned short v2; unsigned long long v3:33; };
struct BFu8s_Us_BFu7c { unsigned short v1:8; unsigned short v2; unsigned char v3:7; };
struct BFu8s_Us_BFu7i { unsigned short v1:8; unsigned short v2; unsigned int v3:7; };
struct BFu8s_Us_BFu7ll { unsigned short v1:8; unsigned short v2; unsigned long long v3:7; };
struct BFu8s_Us_BFu7s { unsigned short v1:8; unsigned short v2; unsigned short v3:7; };
struct BFu8s_Us_BFu8c { unsigned short v1:8; unsigned short v2; unsigned char v3:8; };
struct BFu8s_Us_BFu8i { unsigned short v1:8; unsigned short v2; unsigned int v3:8; };
struct BFu8s_Us_BFu8ll { unsigned short v1:8; unsigned short v2; unsigned long long v3:8; };
struct BFu8s_Us_BFu8s { unsigned short v1:8; unsigned short v2; unsigned short v3:8; };
struct BFu8s_Us_BFu9i { unsigned short v1:8; unsigned short v2; unsigned int v3:9; };
struct BFu8s_Us_BFu9ll { unsigned short v1:8; unsigned short v2; unsigned long long v3:9; };
struct BFu8s_Us_BFu9s { unsigned short v1:8; unsigned short v2; unsigned short v3:9; };
struct BFu8s_Us_C { unsigned short v1:8; unsigned short v2; char v3; };
struct BFu8s_Us_D { unsigned short v1:8; unsigned short v2; double v3; };
struct BFu8s_Us_F { unsigned short v1:8; unsigned short v2; float v3; };
struct BFu8s_Us_I { unsigned short v1:8; unsigned short v2; int v3; };
struct BFu8s_Us_Ip { unsigned short v1:8; unsigned short v2; int * v3; };
struct BFu8s_Us_L { unsigned short v1:8; unsigned short v2; long long v3; };
struct BFu8s_Us_S { unsigned short v1:8; unsigned short v2; short v3; };
struct BFu8s_Us_Uc { unsigned short v1:8; unsigned short v2; unsigned char v3; };
struct BFu8s_Us_Ui { unsigned short v1:8; unsigned short v2; unsigned int v3; };
struct BFu8s_Us_Ul { unsigned short v1:8; unsigned short v2; unsigned long long v3; };
struct BFu8s_Us_Us { unsigned short v1:8; unsigned short v2; unsigned short v3; };
struct BFu8s_Us_Vp { unsigned short v1:8; unsigned short v2; void * v3; };
struct BFu8s_Vp { unsigned short v1:8; void * v2; };
struct BFu8s_Vp_BFu15i { unsigned short v1:8; void * v2; unsigned int v3:15; };
struct BFu8s_Vp_BFu15ll { unsigned short v1:8; void * v2; unsigned long long v3:15; };
struct BFu8s_Vp_BFu15s { unsigned short v1:8; void * v2; unsigned short v3:15; };
struct BFu8s_Vp_BFu16i { unsigned short v1:8; void * v2; unsigned int v3:16; };
struct BFu8s_Vp_BFu16ll { unsigned short v1:8; void * v2; unsigned long long v3:16; };
struct BFu8s_Vp_BFu16s { unsigned short v1:8; void * v2; unsigned short v3:16; };
struct BFu8s_Vp_BFu17i { unsigned short v1:8; void * v2; unsigned int v3:17; };
struct BFu8s_Vp_BFu17ll { unsigned short v1:8; void * v2; unsigned long long v3:17; };
struct BFu8s_Vp_BFu1c { unsigned short v1:8; void * v2; unsigned char v3:1; };
struct BFu8s_Vp_BFu1i { unsigned short v1:8; void * v2; unsigned int v3:1; };
struct BFu8s_Vp_BFu1ll { unsigned short v1:8; void * v2; unsigned long long v3:1; };
struct BFu8s_Vp_BFu1s { unsigned short v1:8; void * v2; unsigned short v3:1; };
struct BFu8s_Vp_BFu31i { unsigned short v1:8; void * v2; unsigned int v3:31; };
struct BFu8s_Vp_BFu31ll { unsigned short v1:8; void * v2; unsigned long long v3:31; };
struct BFu8s_Vp_BFu32i { unsigned short v1:8; void * v2; unsigned int v3:32; };
struct BFu8s_Vp_BFu32ll { unsigned short v1:8; void * v2; unsigned long long v3:32; };
struct BFu8s_Vp_BFu33 { unsigned short v1:8; void * v2; unsigned long long v3:33; };
struct BFu8s_Vp_BFu7c { unsigned short v1:8; void * v2; unsigned char v3:7; };
struct BFu8s_Vp_BFu7i { unsigned short v1:8; void * v2; unsigned int v3:7; };
struct BFu8s_Vp_BFu7ll { unsigned short v1:8; void * v2; unsigned long long v3:7; };
struct BFu8s_Vp_BFu7s { unsigned short v1:8; void * v2; unsigned short v3:7; };
struct BFu8s_Vp_BFu8c { unsigned short v1:8; void * v2; unsigned char v3:8; };
struct BFu8s_Vp_BFu8i { unsigned short v1:8; void * v2; unsigned int v3:8; };
struct BFu8s_Vp_BFu8ll { unsigned short v1:8; void * v2; unsigned long long v3:8; };
struct BFu8s_Vp_BFu8s { unsigned short v1:8; void * v2; unsigned short v3:8; };
struct BFu8s_Vp_BFu9i { unsigned short v1:8; void * v2; unsigned int v3:9; };
struct BFu8s_Vp_BFu9ll { unsigned short v1:8; void * v2; unsigned long long v3:9; };
struct BFu8s_Vp_BFu9s { unsigned short v1:8; void * v2; unsigned short v3:9; };
struct BFu8s_Vp_C { unsigned short v1:8; void * v2; char v3; };
struct BFu8s_Vp_D { unsigned short v1:8; void * v2; double v3; };
struct BFu8s_Vp_F { unsigned short v1:8; void * v2; float v3; };
struct BFu8s_Vp_I { unsigned short v1:8; void * v2; int v3; };
struct BFu8s_Vp_Ip { unsigned short v1:8; void * v2; int * v3; };
struct BFu8s_Vp_L { unsigned short v1:8; void * v2; long long v3; };
struct BFu8s_Vp_S { unsigned short v1:8; void * v2; short v3; };
struct BFu8s_Vp_Uc { unsigned short v1:8; void * v2; unsigned char v3; };
struct BFu8s_Vp_Ui { unsigned short v1:8; void * v2; unsigned int v3; };
struct BFu8s_Vp_Ul { unsigned short v1:8; void * v2; unsigned long long v3; };
struct BFu8s_Vp_Us { unsigned short v1:8; void * v2; unsigned short v3; };
struct BFu8s_Vp_Vp { unsigned short v1:8; void * v2; void * v3; };
struct BFu9i { unsigned int v1:9; };
struct BFu9i_BFs9i { unsigned int v1:9; signed int v2:9; };
struct BFu9i_BFs9i_BFs9i { unsigned int v1:9; signed int v2:9; signed int v3:9; };
struct BFu9i_BFs9i_BFs9i_BFs9i { unsigned int v1:9; signed int v2:9; signed int v3:9; signed int v4:9; };
struct BFu9i_BFs9i_BFs9i_BFs9ll { unsigned int v1:9; signed int v2:9; signed int v3:9; signed long long v4:9; };
struct BFu9i_BFs9i_BFs9i_BFs9s { unsigned int v1:9; signed int v2:9; signed int v3:9; signed short v4:9; };
struct BFu9i_BFs9i_BFs9i_BFu9i { unsigned int v1:9; signed int v2:9; signed int v3:9; unsigned int v4:9; };
struct BFu9i_BFs9i_BFs9i_BFu9ll { unsigned int v1:9; signed int v2:9; signed int v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9i_BFs9i_BFu9s { unsigned int v1:9; signed int v2:9; signed int v3:9; unsigned short v4:9; };
struct BFu9i_BFs9i_BFs9ll { unsigned int v1:9; signed int v2:9; signed long long v3:9; };
struct BFu9i_BFs9i_BFs9ll_BFs9i { unsigned int v1:9; signed int v2:9; signed long long v3:9; signed int v4:9; };
struct BFu9i_BFs9i_BFs9ll_BFs9ll { unsigned int v1:9; signed int v2:9; signed long long v3:9; signed long long v4:9; };
struct BFu9i_BFs9i_BFs9ll_BFs9s { unsigned int v1:9; signed int v2:9; signed long long v3:9; signed short v4:9; };
struct BFu9i_BFs9i_BFs9ll_BFu9i { unsigned int v1:9; signed int v2:9; signed long long v3:9; unsigned int v4:9; };
struct BFu9i_BFs9i_BFs9ll_BFu9ll { unsigned int v1:9; signed int v2:9; signed long long v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9i_BFs9ll_BFu9s { unsigned int v1:9; signed int v2:9; signed long long v3:9; unsigned short v4:9; };
struct BFu9i_BFs9i_BFs9s { unsigned int v1:9; signed int v2:9; signed short v3:9; };
struct BFu9i_BFs9i_BFs9s_BFs9i { unsigned int v1:9; signed int v2:9; signed short v3:9; signed int v4:9; };
struct BFu9i_BFs9i_BFs9s_BFs9ll { unsigned int v1:9; signed int v2:9; signed short v3:9; signed long long v4:9; };
struct BFu9i_BFs9i_BFs9s_BFs9s { unsigned int v1:9; signed int v2:9; signed short v3:9; signed short v4:9; };
struct BFu9i_BFs9i_BFs9s_BFu9i { unsigned int v1:9; signed int v2:9; signed short v3:9; unsigned int v4:9; };
struct BFu9i_BFs9i_BFs9s_BFu9ll { unsigned int v1:9; signed int v2:9; signed short v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9i_BFs9s_BFu9s { unsigned int v1:9; signed int v2:9; signed short v3:9; unsigned short v4:9; };
struct BFu9i_BFs9i_BFu9i { unsigned int v1:9; signed int v2:9; unsigned int v3:9; };
struct BFu9i_BFs9i_BFu9i_BFs9i { unsigned int v1:9; signed int v2:9; unsigned int v3:9; signed int v4:9; };
struct BFu9i_BFs9i_BFu9i_BFs9ll { unsigned int v1:9; signed int v2:9; unsigned int v3:9; signed long long v4:9; };
struct BFu9i_BFs9i_BFu9i_BFs9s { unsigned int v1:9; signed int v2:9; unsigned int v3:9; signed short v4:9; };
struct BFu9i_BFs9i_BFu9i_BFu9i { unsigned int v1:9; signed int v2:9; unsigned int v3:9; unsigned int v4:9; };
struct BFu9i_BFs9i_BFu9i_BFu9ll { unsigned int v1:9; signed int v2:9; unsigned int v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9i_BFu9i_BFu9s { unsigned int v1:9; signed int v2:9; unsigned int v3:9; unsigned short v4:9; };
struct BFu9i_BFs9i_BFu9ll { unsigned int v1:9; signed int v2:9; unsigned long long v3:9; };
struct BFu9i_BFs9i_BFu9ll_BFs9i { unsigned int v1:9; signed int v2:9; unsigned long long v3:9; signed int v4:9; };
struct BFu9i_BFs9i_BFu9ll_BFs9ll { unsigned int v1:9; signed int v2:9; unsigned long long v3:9; signed long long v4:9; };
struct BFu9i_BFs9i_BFu9ll_BFs9s { unsigned int v1:9; signed int v2:9; unsigned long long v3:9; signed short v4:9; };
struct BFu9i_BFs9i_BFu9ll_BFu9i { unsigned int v1:9; signed int v2:9; unsigned long long v3:9; unsigned int v4:9; };
struct BFu9i_BFs9i_BFu9ll_BFu9ll { unsigned int v1:9; signed int v2:9; unsigned long long v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9i_BFu9ll_BFu9s { unsigned int v1:9; signed int v2:9; unsigned long long v3:9; unsigned short v4:9; };
struct BFu9i_BFs9i_BFu9s { unsigned int v1:9; signed int v2:9; unsigned short v3:9; };
struct BFu9i_BFs9i_BFu9s_BFs9i { unsigned int v1:9; signed int v2:9; unsigned short v3:9; signed int v4:9; };
struct BFu9i_BFs9i_BFu9s_BFs9ll { unsigned int v1:9; signed int v2:9; unsigned short v3:9; signed long long v4:9; };
struct BFu9i_BFs9i_BFu9s_BFs9s { unsigned int v1:9; signed int v2:9; unsigned short v3:9; signed short v4:9; };
struct BFu9i_BFs9i_BFu9s_BFu9i { unsigned int v1:9; signed int v2:9; unsigned short v3:9; unsigned int v4:9; };
struct BFu9i_BFs9i_BFu9s_BFu9ll { unsigned int v1:9; signed int v2:9; unsigned short v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9i_BFu9s_BFu9s { unsigned int v1:9; signed int v2:9; unsigned short v3:9; unsigned short v4:9; };
struct BFu9i_BFs9ll { unsigned int v1:9; signed long long v2:9; };
struct BFu9i_BFs9ll_BFs9i { unsigned int v1:9; signed long long v2:9; signed int v3:9; };
struct BFu9i_BFs9ll_BFs9i_BFs9i { unsigned int v1:9; signed long long v2:9; signed int v3:9; signed int v4:9; };
struct BFu9i_BFs9ll_BFs9i_BFs9ll { unsigned int v1:9; signed long long v2:9; signed int v3:9; signed long long v4:9; };
struct BFu9i_BFs9ll_BFs9i_BFs9s { unsigned int v1:9; signed long long v2:9; signed int v3:9; signed short v4:9; };
struct BFu9i_BFs9ll_BFs9i_BFu9i { unsigned int v1:9; signed long long v2:9; signed int v3:9; unsigned int v4:9; };
struct BFu9i_BFs9ll_BFs9i_BFu9ll { unsigned int v1:9; signed long long v2:9; signed int v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9ll_BFs9i_BFu9s { unsigned int v1:9; signed long long v2:9; signed int v3:9; unsigned short v4:9; };
struct BFu9i_BFs9ll_BFs9ll { unsigned int v1:9; signed long long v2:9; signed long long v3:9; };
struct BFu9i_BFs9ll_BFs9ll_BFs9i { unsigned int v1:9; signed long long v2:9; signed long long v3:9; signed int v4:9; };
struct BFu9i_BFs9ll_BFs9ll_BFs9ll { unsigned int v1:9; signed long long v2:9; signed long long v3:9; signed long long v4:9; };
struct BFu9i_BFs9ll_BFs9ll_BFs9s { unsigned int v1:9; signed long long v2:9; signed long long v3:9; signed short v4:9; };
struct BFu9i_BFs9ll_BFs9ll_BFu9i { unsigned int v1:9; signed long long v2:9; signed long long v3:9; unsigned int v4:9; };
struct BFu9i_BFs9ll_BFs9ll_BFu9ll { unsigned int v1:9; signed long long v2:9; signed long long v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9ll_BFs9ll_BFu9s { unsigned int v1:9; signed long long v2:9; signed long long v3:9; unsigned short v4:9; };
struct BFu9i_BFs9ll_BFs9s { unsigned int v1:9; signed long long v2:9; signed short v3:9; };
struct BFu9i_BFs9ll_BFs9s_BFs9i { unsigned int v1:9; signed long long v2:9; signed short v3:9; signed int v4:9; };
struct BFu9i_BFs9ll_BFs9s_BFs9ll { unsigned int v1:9; signed long long v2:9; signed short v3:9; signed long long v4:9; };
struct BFu9i_BFs9ll_BFs9s_BFs9s { unsigned int v1:9; signed long long v2:9; signed short v3:9; signed short v4:9; };
struct BFu9i_BFs9ll_BFs9s_BFu9i { unsigned int v1:9; signed long long v2:9; signed short v3:9; unsigned int v4:9; };
struct BFu9i_BFs9ll_BFs9s_BFu9ll { unsigned int v1:9; signed long long v2:9; signed short v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9ll_BFs9s_BFu9s { unsigned int v1:9; signed long long v2:9; signed short v3:9; unsigned short v4:9; };
struct BFu9i_BFs9ll_BFu9i { unsigned int v1:9; signed long long v2:9; unsigned int v3:9; };
struct BFu9i_BFs9ll_BFu9i_BFs9i { unsigned int v1:9; signed long long v2:9; unsigned int v3:9; signed int v4:9; };
struct BFu9i_BFs9ll_BFu9i_BFs9ll { unsigned int v1:9; signed long long v2:9; unsigned int v3:9; signed long long v4:9; };
struct BFu9i_BFs9ll_BFu9i_BFs9s { unsigned int v1:9; signed long long v2:9; unsigned int v3:9; signed short v4:9; };
struct BFu9i_BFs9ll_BFu9i_BFu9i { unsigned int v1:9; signed long long v2:9; unsigned int v3:9; unsigned int v4:9; };
struct BFu9i_BFs9ll_BFu9i_BFu9ll { unsigned int v1:9; signed long long v2:9; unsigned int v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9ll_BFu9i_BFu9s { unsigned int v1:9; signed long long v2:9; unsigned int v3:9; unsigned short v4:9; };
struct BFu9i_BFs9ll_BFu9ll { unsigned int v1:9; signed long long v2:9; unsigned long long v3:9; };
struct BFu9i_BFs9ll_BFu9ll_BFs9i { unsigned int v1:9; signed long long v2:9; unsigned long long v3:9; signed int v4:9; };
struct BFu9i_BFs9ll_BFu9ll_BFs9ll { unsigned int v1:9; signed long long v2:9; unsigned long long v3:9; signed long long v4:9; };
struct BFu9i_BFs9ll_BFu9ll_BFs9s { unsigned int v1:9; signed long long v2:9; unsigned long long v3:9; signed short v4:9; };
struct BFu9i_BFs9ll_BFu9ll_BFu9i { unsigned int v1:9; signed long long v2:9; unsigned long long v3:9; unsigned int v4:9; };
struct BFu9i_BFs9ll_BFu9ll_BFu9ll { unsigned int v1:9; signed long long v2:9; unsigned long long v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9ll_BFu9ll_BFu9s { unsigned int v1:9; signed long long v2:9; unsigned long long v3:9; unsigned short v4:9; };
struct BFu9i_BFs9ll_BFu9s { unsigned int v1:9; signed long long v2:9; unsigned short v3:9; };
struct BFu9i_BFs9ll_BFu9s_BFs9i { unsigned int v1:9; signed long long v2:9; unsigned short v3:9; signed int v4:9; };
struct BFu9i_BFs9ll_BFu9s_BFs9ll { unsigned int v1:9; signed long long v2:9; unsigned short v3:9; signed long long v4:9; };
struct BFu9i_BFs9ll_BFu9s_BFs9s { unsigned int v1:9; signed long long v2:9; unsigned short v3:9; signed short v4:9; };
struct BFu9i_BFs9ll_BFu9s_BFu9i { unsigned int v1:9; signed long long v2:9; unsigned short v3:9; unsigned int v4:9; };
struct BFu9i_BFs9ll_BFu9s_BFu9ll { unsigned int v1:9; signed long long v2:9; unsigned short v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9ll_BFu9s_BFu9s { unsigned int v1:9; signed long long v2:9; unsigned short v3:9; unsigned short v4:9; };
struct BFu9i_BFs9s { unsigned int v1:9; signed short v2:9; };
struct BFu9i_BFs9s_BFs9i { unsigned int v1:9; signed short v2:9; signed int v3:9; };
struct BFu9i_BFs9s_BFs9i_BFs9i { unsigned int v1:9; signed short v2:9; signed int v3:9; signed int v4:9; };
struct BFu9i_BFs9s_BFs9i_BFs9ll { unsigned int v1:9; signed short v2:9; signed int v3:9; signed long long v4:9; };
struct BFu9i_BFs9s_BFs9i_BFs9s { unsigned int v1:9; signed short v2:9; signed int v3:9; signed short v4:9; };
struct BFu9i_BFs9s_BFs9i_BFu9i { unsigned int v1:9; signed short v2:9; signed int v3:9; unsigned int v4:9; };
struct BFu9i_BFs9s_BFs9i_BFu9ll { unsigned int v1:9; signed short v2:9; signed int v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9s_BFs9i_BFu9s { unsigned int v1:9; signed short v2:9; signed int v3:9; unsigned short v4:9; };
struct BFu9i_BFs9s_BFs9ll { unsigned int v1:9; signed short v2:9; signed long long v3:9; };
struct BFu9i_BFs9s_BFs9ll_BFs9i { unsigned int v1:9; signed short v2:9; signed long long v3:9; signed int v4:9; };
struct BFu9i_BFs9s_BFs9ll_BFs9ll { unsigned int v1:9; signed short v2:9; signed long long v3:9; signed long long v4:9; };
struct BFu9i_BFs9s_BFs9ll_BFs9s { unsigned int v1:9; signed short v2:9; signed long long v3:9; signed short v4:9; };
struct BFu9i_BFs9s_BFs9ll_BFu9i { unsigned int v1:9; signed short v2:9; signed long long v3:9; unsigned int v4:9; };
struct BFu9i_BFs9s_BFs9ll_BFu9ll { unsigned int v1:9; signed short v2:9; signed long long v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9s_BFs9ll_BFu9s { unsigned int v1:9; signed short v2:9; signed long long v3:9; unsigned short v4:9; };
struct BFu9i_BFs9s_BFs9s { unsigned int v1:9; signed short v2:9; signed short v3:9; };
struct BFu9i_BFs9s_BFs9s_BFs9i { unsigned int v1:9; signed short v2:9; signed short v3:9; signed int v4:9; };
struct BFu9i_BFs9s_BFs9s_BFs9ll { unsigned int v1:9; signed short v2:9; signed short v3:9; signed long long v4:9; };
struct BFu9i_BFs9s_BFs9s_BFs9s { unsigned int v1:9; signed short v2:9; signed short v3:9; signed short v4:9; };
struct BFu9i_BFs9s_BFs9s_BFu9i { unsigned int v1:9; signed short v2:9; signed short v3:9; unsigned int v4:9; };
struct BFu9i_BFs9s_BFs9s_BFu9ll { unsigned int v1:9; signed short v2:9; signed short v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9s_BFs9s_BFu9s { unsigned int v1:9; signed short v2:9; signed short v3:9; unsigned short v4:9; };
struct BFu9i_BFs9s_BFu9i { unsigned int v1:9; signed short v2:9; unsigned int v3:9; };
struct BFu9i_BFs9s_BFu9i_BFs9i { unsigned int v1:9; signed short v2:9; unsigned int v3:9; signed int v4:9; };
struct BFu9i_BFs9s_BFu9i_BFs9ll { unsigned int v1:9; signed short v2:9; unsigned int v3:9; signed long long v4:9; };
struct BFu9i_BFs9s_BFu9i_BFs9s { unsigned int v1:9; signed short v2:9; unsigned int v3:9; signed short v4:9; };
struct BFu9i_BFs9s_BFu9i_BFu9i { unsigned int v1:9; signed short v2:9; unsigned int v3:9; unsigned int v4:9; };
struct BFu9i_BFs9s_BFu9i_BFu9ll { unsigned int v1:9; signed short v2:9; unsigned int v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9s_BFu9i_BFu9s { unsigned int v1:9; signed short v2:9; unsigned int v3:9; unsigned short v4:9; };
struct BFu9i_BFs9s_BFu9ll { unsigned int v1:9; signed short v2:9; unsigned long long v3:9; };
struct BFu9i_BFs9s_BFu9ll_BFs9i { unsigned int v1:9; signed short v2:9; unsigned long long v3:9; signed int v4:9; };
struct BFu9i_BFs9s_BFu9ll_BFs9ll { unsigned int v1:9; signed short v2:9; unsigned long long v3:9; signed long long v4:9; };
struct BFu9i_BFs9s_BFu9ll_BFs9s { unsigned int v1:9; signed short v2:9; unsigned long long v3:9; signed short v4:9; };
struct BFu9i_BFs9s_BFu9ll_BFu9i { unsigned int v1:9; signed short v2:9; unsigned long long v3:9; unsigned int v4:9; };
struct BFu9i_BFs9s_BFu9ll_BFu9ll { unsigned int v1:9; signed short v2:9; unsigned long long v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9s_BFu9ll_BFu9s { unsigned int v1:9; signed short v2:9; unsigned long long v3:9; unsigned short v4:9; };
struct BFu9i_BFs9s_BFu9s { unsigned int v1:9; signed short v2:9; unsigned short v3:9; };
struct BFu9i_BFs9s_BFu9s_BFs9i { unsigned int v1:9; signed short v2:9; unsigned short v3:9; signed int v4:9; };
struct BFu9i_BFs9s_BFu9s_BFs9ll { unsigned int v1:9; signed short v2:9; unsigned short v3:9; signed long long v4:9; };
struct BFu9i_BFs9s_BFu9s_BFs9s { unsigned int v1:9; signed short v2:9; unsigned short v3:9; signed short v4:9; };
struct BFu9i_BFs9s_BFu9s_BFu9i { unsigned int v1:9; signed short v2:9; unsigned short v3:9; unsigned int v4:9; };
struct BFu9i_BFs9s_BFu9s_BFu9ll { unsigned int v1:9; signed short v2:9; unsigned short v3:9; unsigned long long v4:9; };
struct BFu9i_BFs9s_BFu9s_BFu9s { unsigned int v1:9; signed short v2:9; unsigned short v3:9; unsigned short v4:9; };
struct BFu9i_BFu15i { unsigned int v1:9; unsigned int v2:15; };
struct BFu9i_BFu15i_BFu15i { unsigned int v1:9; unsigned int v2:15; unsigned int v3:15; };
struct BFu9i_BFu15i_BFu15ll { unsigned int v1:9; unsigned int v2:15; unsigned long long v3:15; };
struct BFu9i_BFu15i_BFu15s { unsigned int v1:9; unsigned int v2:15; unsigned short v3:15; };
struct BFu9i_BFu15i_BFu16i { unsigned int v1:9; unsigned int v2:15; unsigned int v3:16; };
struct BFu9i_BFu15i_BFu16ll { unsigned int v1:9; unsigned int v2:15; unsigned long long v3:16; };
struct BFu9i_BFu15i_BFu16s { unsigned int v1:9; unsigned int v2:15; unsigned short v3:16; };
struct BFu9i_BFu15i_BFu17i { unsigned int v1:9; unsigned int v2:15; unsigned int v3:17; };
struct BFu9i_BFu15i_BFu17ll { unsigned int v1:9; unsigned int v2:15; unsigned long long v3:17; };
struct BFu9i_BFu15i_BFu1c { unsigned int v1:9; unsigned int v2:15; unsigned char v3:1; };
struct BFu9i_BFu15i_BFu1i { unsigned int v1:9; unsigned int v2:15; unsigned int v3:1; };
struct BFu9i_BFu15i_BFu1ll { unsigned int v1:9; unsigned int v2:15; unsigned long long v3:1; };
struct BFu9i_BFu15i_BFu1s { unsigned int v1:9; unsigned int v2:15; unsigned short v3:1; };
struct BFu9i_BFu15i_BFu31i { unsigned int v1:9; unsigned int v2:15; unsigned int v3:31; };
struct BFu9i_BFu15i_BFu31ll { unsigned int v1:9; unsigned int v2:15; unsigned long long v3:31; };
struct BFu9i_BFu15i_BFu32i { unsigned int v1:9; unsigned int v2:15; unsigned int v3:32; };
struct BFu9i_BFu15i_BFu32ll { unsigned int v1:9; unsigned int v2:15; unsigned long long v3:32; };
struct BFu9i_BFu15i_BFu33 { unsigned int v1:9; unsigned int v2:15; unsigned long long v3:33; };
struct BFu9i_BFu15i_BFu7c { unsigned int v1:9; unsigned int v2:15; unsigned char v3:7; };
struct BFu9i_BFu15i_BFu7i { unsigned int v1:9; unsigned int v2:15; unsigned int v3:7; };
struct BFu9i_BFu15i_BFu7ll { unsigned int v1:9; unsigned int v2:15; unsigned long long v3:7; };
struct BFu9i_BFu15i_BFu7s { unsigned int v1:9; unsigned int v2:15; unsigned short v3:7; };
struct BFu9i_BFu15i_BFu8c { unsigned int v1:9; unsigned int v2:15; unsigned char v3:8; };
struct BFu9i_BFu15i_BFu8i { unsigned int v1:9; unsigned int v2:15; unsigned int v3:8; };
struct BFu9i_BFu15i_BFu8ll { unsigned int v1:9; unsigned int v2:15; unsigned long long v3:8; };
struct BFu9i_BFu15i_BFu8s { unsigned int v1:9; unsigned int v2:15; unsigned short v3:8; };
struct BFu9i_BFu15i_BFu9i { unsigned int v1:9; unsigned int v2:15; unsigned int v3:9; };
struct BFu9i_BFu15i_BFu9ll { unsigned int v1:9; unsigned int v2:15; unsigned long long v3:9; };
struct BFu9i_BFu15i_BFu9s { unsigned int v1:9; unsigned int v2:15; unsigned short v3:9; };
struct BFu9i_BFu15i_C { unsigned int v1:9; unsigned int v2:15; char v3; };
struct BFu9i_BFu15i_D { unsigned int v1:9; unsigned int v2:15; double v3; };
struct BFu9i_BFu15i_F { unsigned int v1:9; unsigned int v2:15; float v3; };
struct BFu9i_BFu15i_I { unsigned int v1:9; unsigned int v2:15; int v3; };
struct BFu9i_BFu15i_Ip { unsigned int v1:9; unsigned int v2:15; int * v3; };
struct BFu9i_BFu15i_L { unsigned int v1:9; unsigned int v2:15; long long v3; };
struct BFu9i_BFu15i_S { unsigned int v1:9; unsigned int v2:15; short v3; };
struct BFu9i_BFu15i_Uc { unsigned int v1:9; unsigned int v2:15; unsigned char v3; };
struct BFu9i_BFu15i_Ui { unsigned int v1:9; unsigned int v2:15; unsigned int v3; };
struct BFu9i_BFu15i_Ul { unsigned int v1:9; unsigned int v2:15; unsigned long long v3; };
struct BFu9i_BFu15i_Us { unsigned int v1:9; unsigned int v2:15; unsigned short v3; };
struct BFu9i_BFu15i_Vp { unsigned int v1:9; unsigned int v2:15; void * v3; };
struct BFu9i_BFu15ll { unsigned int v1:9; unsigned long long v2:15; };
struct BFu9i_BFu15ll_BFu15i { unsigned int v1:9; unsigned long long v2:15; unsigned int v3:15; };
struct BFu9i_BFu15ll_BFu15ll { unsigned int v1:9; unsigned long long v2:15; unsigned long long v3:15; };
struct BFu9i_BFu15ll_BFu15s { unsigned int v1:9; unsigned long long v2:15; unsigned short v3:15; };
struct BFu9i_BFu15ll_BFu16i { unsigned int v1:9; unsigned long long v2:15; unsigned int v3:16; };
struct BFu9i_BFu15ll_BFu16ll { unsigned int v1:9; unsigned long long v2:15; unsigned long long v3:16; };
struct BFu9i_BFu15ll_BFu16s { unsigned int v1:9; unsigned long long v2:15; unsigned short v3:16; };
struct BFu9i_BFu15ll_BFu17i { unsigned int v1:9; unsigned long long v2:15; unsigned int v3:17; };
struct BFu9i_BFu15ll_BFu17ll { unsigned int v1:9; unsigned long long v2:15; unsigned long long v3:17; };
struct BFu9i_BFu15ll_BFu1c { unsigned int v1:9; unsigned long long v2:15; unsigned char v3:1; };
struct BFu9i_BFu15ll_BFu1i { unsigned int v1:9; unsigned long long v2:15; unsigned int v3:1; };
struct BFu9i_BFu15ll_BFu1ll { unsigned int v1:9; unsigned long long v2:15; unsigned long long v3:1; };
struct BFu9i_BFu15ll_BFu1s { unsigned int v1:9; unsigned long long v2:15; unsigned short v3:1; };
struct BFu9i_BFu15ll_BFu31i { unsigned int v1:9; unsigned long long v2:15; unsigned int v3:31; };
struct BFu9i_BFu15ll_BFu31ll { unsigned int v1:9; unsigned long long v2:15; unsigned long long v3:31; };
struct BFu9i_BFu15ll_BFu32i { unsigned int v1:9; unsigned long long v2:15; unsigned int v3:32; };
struct BFu9i_BFu15ll_BFu32ll { unsigned int v1:9; unsigned long long v2:15; unsigned long long v3:32; };
struct BFu9i_BFu15ll_BFu33 { unsigned int v1:9; unsigned long long v2:15; unsigned long long v3:33; };
struct BFu9i_BFu15ll_BFu7c { unsigned int v1:9; unsigned long long v2:15; unsigned char v3:7; };
struct BFu9i_BFu15ll_BFu7i { unsigned int v1:9; unsigned long long v2:15; unsigned int v3:7; };
struct BFu9i_BFu15ll_BFu7ll { unsigned int v1:9; unsigned long long v2:15; unsigned long long v3:7; };
struct BFu9i_BFu15ll_BFu7s { unsigned int v1:9; unsigned long long v2:15; unsigned short v3:7; };
struct BFu9i_BFu15ll_BFu8c { unsigned int v1:9; unsigned long long v2:15; unsigned char v3:8; };
struct BFu9i_BFu15ll_BFu8i { unsigned int v1:9; unsigned long long v2:15; unsigned int v3:8; };
struct BFu9i_BFu15ll_BFu8ll { unsigned int v1:9; unsigned long long v2:15; unsigned long long v3:8; };
struct BFu9i_BFu15ll_BFu8s { unsigned int v1:9; unsigned long long v2:15; unsigned short v3:8; };
struct BFu9i_BFu15ll_BFu9i { unsigned int v1:9; unsigned long long v2:15; unsigned int v3:9; };
struct BFu9i_BFu15ll_BFu9ll { unsigned int v1:9; unsigned long long v2:15; unsigned long long v3:9; };
struct BFu9i_BFu15ll_BFu9s { unsigned int v1:9; unsigned long long v2:15; unsigned short v3:9; };
struct BFu9i_BFu15ll_C { unsigned int v1:9; unsigned long long v2:15; char v3; };
struct BFu9i_BFu15ll_D { unsigned int v1:9; unsigned long long v2:15; double v3; };
struct BFu9i_BFu15ll_F { unsigned int v1:9; unsigned long long v2:15; float v3; };
struct BFu9i_BFu15ll_I { unsigned int v1:9; unsigned long long v2:15; int v3; };
struct BFu9i_BFu15ll_Ip { unsigned int v1:9; unsigned long long v2:15; int * v3; };
struct BFu9i_BFu15ll_L { unsigned int v1:9; unsigned long long v2:15; long long v3; };
struct BFu9i_BFu15ll_S { unsigned int v1:9; unsigned long long v2:15; short v3; };
struct BFu9i_BFu15ll_Uc { unsigned int v1:9; unsigned long long v2:15; unsigned char v3; };
struct BFu9i_BFu15ll_Ui { unsigned int v1:9; unsigned long long v2:15; unsigned int v3; };
struct BFu9i_BFu15ll_Ul { unsigned int v1:9; unsigned long long v2:15; unsigned long long v3; };
struct BFu9i_BFu15ll_Us { unsigned int v1:9; unsigned long long v2:15; unsigned short v3; };
struct BFu9i_BFu15ll_Vp { unsigned int v1:9; unsigned long long v2:15; void * v3; };
struct BFu9i_BFu15s { unsigned int v1:9; unsigned short v2:15; };
struct BFu9i_BFu15s_BFu15i { unsigned int v1:9; unsigned short v2:15; unsigned int v3:15; };
struct BFu9i_BFu15s_BFu15ll { unsigned int v1:9; unsigned short v2:15; unsigned long long v3:15; };
struct BFu9i_BFu15s_BFu15s { unsigned int v1:9; unsigned short v2:15; unsigned short v3:15; };
struct BFu9i_BFu15s_BFu16i { unsigned int v1:9; unsigned short v2:15; unsigned int v3:16; };
struct BFu9i_BFu15s_BFu16ll { unsigned int v1:9; unsigned short v2:15; unsigned long long v3:16; };
struct BFu9i_BFu15s_BFu16s { unsigned int v1:9; unsigned short v2:15; unsigned short v3:16; };
struct BFu9i_BFu15s_BFu17i { unsigned int v1:9; unsigned short v2:15; unsigned int v3:17; };
struct BFu9i_BFu15s_BFu17ll { unsigned int v1:9; unsigned short v2:15; unsigned long long v3:17; };
struct BFu9i_BFu15s_BFu1c { unsigned int v1:9; unsigned short v2:15; unsigned char v3:1; };
struct BFu9i_BFu15s_BFu1i { unsigned int v1:9; unsigned short v2:15; unsigned int v3:1; };
struct BFu9i_BFu15s_BFu1ll { unsigned int v1:9; unsigned short v2:15; unsigned long long v3:1; };
struct BFu9i_BFu15s_BFu1s { unsigned int v1:9; unsigned short v2:15; unsigned short v3:1; };
struct BFu9i_BFu15s_BFu31i { unsigned int v1:9; unsigned short v2:15; unsigned int v3:31; };
struct BFu9i_BFu15s_BFu31ll { unsigned int v1:9; unsigned short v2:15; unsigned long long v3:31; };
struct BFu9i_BFu15s_BFu32i { unsigned int v1:9; unsigned short v2:15; unsigned int v3:32; };
struct BFu9i_BFu15s_BFu32ll { unsigned int v1:9; unsigned short v2:15; unsigned long long v3:32; };
struct BFu9i_BFu15s_BFu33 { unsigned int v1:9; unsigned short v2:15; unsigned long long v3:33; };
struct BFu9i_BFu15s_BFu7c { unsigned int v1:9; unsigned short v2:15; unsigned char v3:7; };
struct BFu9i_BFu15s_BFu7i { unsigned int v1:9; unsigned short v2:15; unsigned int v3:7; };
struct BFu9i_BFu15s_BFu7ll { unsigned int v1:9; unsigned short v2:15; unsigned long long v3:7; };
struct BFu9i_BFu15s_BFu7s { unsigned int v1:9; unsigned short v2:15; unsigned short v3:7; };
struct BFu9i_BFu15s_BFu8c { unsigned int v1:9; unsigned short v2:15; unsigned char v3:8; };
struct BFu9i_BFu15s_BFu8i { unsigned int v1:9; unsigned short v2:15; unsigned int v3:8; };
struct BFu9i_BFu15s_BFu8ll { unsigned int v1:9; unsigned short v2:15; unsigned long long v3:8; };
struct BFu9i_BFu15s_BFu8s { unsigned int v1:9; unsigned short v2:15; unsigned short v3:8; };
struct BFu9i_BFu15s_BFu9i { unsigned int v1:9; unsigned short v2:15; unsigned int v3:9; };
struct BFu9i_BFu15s_BFu9ll { unsigned int v1:9; unsigned short v2:15; unsigned long long v3:9; };
struct BFu9i_BFu15s_BFu9s { unsigned int v1:9; unsigned short v2:15; unsigned short v3:9; };
struct BFu9i_BFu15s_C { unsigned int v1:9; unsigned short v2:15; char v3; };
struct BFu9i_BFu15s_D { unsigned int v1:9; unsigned short v2:15; double v3; };
struct BFu9i_BFu15s_F { unsigned int v1:9; unsigned short v2:15; float v3; };
struct BFu9i_BFu15s_I { unsigned int v1:9; unsigned short v2:15; int v3; };
struct BFu9i_BFu15s_Ip { unsigned int v1:9; unsigned short v2:15; int * v3; };
struct BFu9i_BFu15s_L { unsigned int v1:9; unsigned short v2:15; long long v3; };
struct BFu9i_BFu15s_S { unsigned int v1:9; unsigned short v2:15; short v3; };
struct BFu9i_BFu15s_Uc { unsigned int v1:9; unsigned short v2:15; unsigned char v3; };
struct BFu9i_BFu15s_Ui { unsigned int v1:9; unsigned short v2:15; unsigned int v3; };
struct BFu9i_BFu15s_Ul { unsigned int v1:9; unsigned short v2:15; unsigned long long v3; };
struct BFu9i_BFu15s_Us { unsigned int v1:9; unsigned short v2:15; unsigned short v3; };
struct BFu9i_BFu15s_Vp { unsigned int v1:9; unsigned short v2:15; void * v3; };
struct BFu9i_BFu16i { unsigned int v1:9; unsigned int v2:16; };
struct BFu9i_BFu16i_BFu15i { unsigned int v1:9; unsigned int v2:16; unsigned int v3:15; };
struct BFu9i_BFu16i_BFu15ll { unsigned int v1:9; unsigned int v2:16; unsigned long long v3:15; };
struct BFu9i_BFu16i_BFu15s { unsigned int v1:9; unsigned int v2:16; unsigned short v3:15; };
struct BFu9i_BFu16i_BFu16i { unsigned int v1:9; unsigned int v2:16; unsigned int v3:16; };
struct BFu9i_BFu16i_BFu16ll { unsigned int v1:9; unsigned int v2:16; unsigned long long v3:16; };
struct BFu9i_BFu16i_BFu16s { unsigned int v1:9; unsigned int v2:16; unsigned short v3:16; };
struct BFu9i_BFu16i_BFu17i { unsigned int v1:9; unsigned int v2:16; unsigned int v3:17; };
struct BFu9i_BFu16i_BFu17ll { unsigned int v1:9; unsigned int v2:16; unsigned long long v3:17; };
struct BFu9i_BFu16i_BFu1c { unsigned int v1:9; unsigned int v2:16; unsigned char v3:1; };
struct BFu9i_BFu16i_BFu1i { unsigned int v1:9; unsigned int v2:16; unsigned int v3:1; };
struct BFu9i_BFu16i_BFu1ll { unsigned int v1:9; unsigned int v2:16; unsigned long long v3:1; };
struct BFu9i_BFu16i_BFu1s { unsigned int v1:9; unsigned int v2:16; unsigned short v3:1; };
struct BFu9i_BFu16i_BFu31i { unsigned int v1:9; unsigned int v2:16; unsigned int v3:31; };
struct BFu9i_BFu16i_BFu31ll { unsigned int v1:9; unsigned int v2:16; unsigned long long v3:31; };
struct BFu9i_BFu16i_BFu32i { unsigned int v1:9; unsigned int v2:16; unsigned int v3:32; };
struct BFu9i_BFu16i_BFu32ll { unsigned int v1:9; unsigned int v2:16; unsigned long long v3:32; };
struct BFu9i_BFu16i_BFu33 { unsigned int v1:9; unsigned int v2:16; unsigned long long v3:33; };
struct BFu9i_BFu16i_BFu7c { unsigned int v1:9; unsigned int v2:16; unsigned char v3:7; };
struct BFu9i_BFu16i_BFu7i { unsigned int v1:9; unsigned int v2:16; unsigned int v3:7; };
struct BFu9i_BFu16i_BFu7ll { unsigned int v1:9; unsigned int v2:16; unsigned long long v3:7; };
struct BFu9i_BFu16i_BFu7s { unsigned int v1:9; unsigned int v2:16; unsigned short v3:7; };
struct BFu9i_BFu16i_BFu8c { unsigned int v1:9; unsigned int v2:16; unsigned char v3:8; };
struct BFu9i_BFu16i_BFu8i { unsigned int v1:9; unsigned int v2:16; unsigned int v3:8; };
struct BFu9i_BFu16i_BFu8ll { unsigned int v1:9; unsigned int v2:16; unsigned long long v3:8; };
struct BFu9i_BFu16i_BFu8s { unsigned int v1:9; unsigned int v2:16; unsigned short v3:8; };
struct BFu9i_BFu16i_BFu9i { unsigned int v1:9; unsigned int v2:16; unsigned int v3:9; };
struct BFu9i_BFu16i_BFu9ll { unsigned int v1:9; unsigned int v2:16; unsigned long long v3:9; };
struct BFu9i_BFu16i_BFu9s { unsigned int v1:9; unsigned int v2:16; unsigned short v3:9; };
struct BFu9i_BFu16i_C { unsigned int v1:9; unsigned int v2:16; char v3; };
struct BFu9i_BFu16i_D { unsigned int v1:9; unsigned int v2:16; double v3; };
struct BFu9i_BFu16i_F { unsigned int v1:9; unsigned int v2:16; float v3; };
struct BFu9i_BFu16i_I { unsigned int v1:9; unsigned int v2:16; int v3; };
struct BFu9i_BFu16i_Ip { unsigned int v1:9; unsigned int v2:16; int * v3; };
struct BFu9i_BFu16i_L { unsigned int v1:9; unsigned int v2:16; long long v3; };
struct BFu9i_BFu16i_S { unsigned int v1:9; unsigned int v2:16; short v3; };
struct BFu9i_BFu16i_Uc { unsigned int v1:9; unsigned int v2:16; unsigned char v3; };
struct BFu9i_BFu16i_Ui { unsigned int v1:9; unsigned int v2:16; unsigned int v3; };
struct BFu9i_BFu16i_Ul { unsigned int v1:9; unsigned int v2:16; unsigned long long v3; };
struct BFu9i_BFu16i_Us { unsigned int v1:9; unsigned int v2:16; unsigned short v3; };
struct BFu9i_BFu16i_Vp { unsigned int v1:9; unsigned int v2:16; void * v3; };
struct BFu9i_BFu16ll { unsigned int v1:9; unsigned long long v2:16; };
struct BFu9i_BFu16ll_BFu15i { unsigned int v1:9; unsigned long long v2:16; unsigned int v3:15; };
struct BFu9i_BFu16ll_BFu15ll { unsigned int v1:9; unsigned long long v2:16; unsigned long long v3:15; };
struct BFu9i_BFu16ll_BFu15s { unsigned int v1:9; unsigned long long v2:16; unsigned short v3:15; };
struct BFu9i_BFu16ll_BFu16i { unsigned int v1:9; unsigned long long v2:16; unsigned int v3:16; };
struct BFu9i_BFu16ll_BFu16ll { unsigned int v1:9; unsigned long long v2:16; unsigned long long v3:16; };
struct BFu9i_BFu16ll_BFu16s { unsigned int v1:9; unsigned long long v2:16; unsigned short v3:16; };
struct BFu9i_BFu16ll_BFu17i { unsigned int v1:9; unsigned long long v2:16; unsigned int v3:17; };
struct BFu9i_BFu16ll_BFu17ll { unsigned int v1:9; unsigned long long v2:16; unsigned long long v3:17; };
struct BFu9i_BFu16ll_BFu1c { unsigned int v1:9; unsigned long long v2:16; unsigned char v3:1; };
struct BFu9i_BFu16ll_BFu1i { unsigned int v1:9; unsigned long long v2:16; unsigned int v3:1; };
struct BFu9i_BFu16ll_BFu1ll { unsigned int v1:9; unsigned long long v2:16; unsigned long long v3:1; };
struct BFu9i_BFu16ll_BFu1s { unsigned int v1:9; unsigned long long v2:16; unsigned short v3:1; };
struct BFu9i_BFu16ll_BFu31i { unsigned int v1:9; unsigned long long v2:16; unsigned int v3:31; };
struct BFu9i_BFu16ll_BFu31ll { unsigned int v1:9; unsigned long long v2:16; unsigned long long v3:31; };
struct BFu9i_BFu16ll_BFu32i { unsigned int v1:9; unsigned long long v2:16; unsigned int v3:32; };
struct BFu9i_BFu16ll_BFu32ll { unsigned int v1:9; unsigned long long v2:16; unsigned long long v3:32; };
struct BFu9i_BFu16ll_BFu33 { unsigned int v1:9; unsigned long long v2:16; unsigned long long v3:33; };
struct BFu9i_BFu16ll_BFu7c { unsigned int v1:9; unsigned long long v2:16; unsigned char v3:7; };
struct BFu9i_BFu16ll_BFu7i { unsigned int v1:9; unsigned long long v2:16; unsigned int v3:7; };
struct BFu9i_BFu16ll_BFu7ll { unsigned int v1:9; unsigned long long v2:16; unsigned long long v3:7; };
struct BFu9i_BFu16ll_BFu7s { unsigned int v1:9; unsigned long long v2:16; unsigned short v3:7; };
struct BFu9i_BFu16ll_BFu8c { unsigned int v1:9; unsigned long long v2:16; unsigned char v3:8; };
struct BFu9i_BFu16ll_BFu8i { unsigned int v1:9; unsigned long long v2:16; unsigned int v3:8; };
struct BFu9i_BFu16ll_BFu8ll { unsigned int v1:9; unsigned long long v2:16; unsigned long long v3:8; };
struct BFu9i_BFu16ll_BFu8s { unsigned int v1:9; unsigned long long v2:16; unsigned short v3:8; };
struct BFu9i_BFu16ll_BFu9i { unsigned int v1:9; unsigned long long v2:16; unsigned int v3:9; };
struct BFu9i_BFu16ll_BFu9ll { unsigned int v1:9; unsigned long long v2:16; unsigned long long v3:9; };
struct BFu9i_BFu16ll_BFu9s { unsigned int v1:9; unsigned long long v2:16; unsigned short v3:9; };
struct BFu9i_BFu16ll_C { unsigned int v1:9; unsigned long long v2:16; char v3; };
struct BFu9i_BFu16ll_D { unsigned int v1:9; unsigned long long v2:16; double v3; };
struct BFu9i_BFu16ll_F { unsigned int v1:9; unsigned long long v2:16; float v3; };
struct BFu9i_BFu16ll_I { unsigned int v1:9; unsigned long long v2:16; int v3; };
struct BFu9i_BFu16ll_Ip { unsigned int v1:9; unsigned long long v2:16; int * v3; };
struct BFu9i_BFu16ll_L { unsigned int v1:9; unsigned long long v2:16; long long v3; };
struct BFu9i_BFu16ll_S { unsigned int v1:9; unsigned long long v2:16; short v3; };
struct BFu9i_BFu16ll_Uc { unsigned int v1:9; unsigned long long v2:16; unsigned char v3; };
struct BFu9i_BFu16ll_Ui { unsigned int v1:9; unsigned long long v2:16; unsigned int v3; };
struct BFu9i_BFu16ll_Ul { unsigned int v1:9; unsigned long long v2:16; unsigned long long v3; };
struct BFu9i_BFu16ll_Us { unsigned int v1:9; unsigned long long v2:16; unsigned short v3; };
struct BFu9i_BFu16ll_Vp { unsigned int v1:9; unsigned long long v2:16; void * v3; };
struct BFu9i_BFu16s { unsigned int v1:9; unsigned short v2:16; };
struct BFu9i_BFu16s_BFu15i { unsigned int v1:9; unsigned short v2:16; unsigned int v3:15; };
struct BFu9i_BFu16s_BFu15ll { unsigned int v1:9; unsigned short v2:16; unsigned long long v3:15; };
struct BFu9i_BFu16s_BFu15s { unsigned int v1:9; unsigned short v2:16; unsigned short v3:15; };
struct BFu9i_BFu16s_BFu16i { unsigned int v1:9; unsigned short v2:16; unsigned int v3:16; };
struct BFu9i_BFu16s_BFu16ll { unsigned int v1:9; unsigned short v2:16; unsigned long long v3:16; };
struct BFu9i_BFu16s_BFu16s { unsigned int v1:9; unsigned short v2:16; unsigned short v3:16; };
struct BFu9i_BFu16s_BFu17i { unsigned int v1:9; unsigned short v2:16; unsigned int v3:17; };
struct BFu9i_BFu16s_BFu17ll { unsigned int v1:9; unsigned short v2:16; unsigned long long v3:17; };
struct BFu9i_BFu16s_BFu1c { unsigned int v1:9; unsigned short v2:16; unsigned char v3:1; };
struct BFu9i_BFu16s_BFu1i { unsigned int v1:9; unsigned short v2:16; unsigned int v3:1; };
struct BFu9i_BFu16s_BFu1ll { unsigned int v1:9; unsigned short v2:16; unsigned long long v3:1; };
struct BFu9i_BFu16s_BFu1s { unsigned int v1:9; unsigned short v2:16; unsigned short v3:1; };
struct BFu9i_BFu16s_BFu31i { unsigned int v1:9; unsigned short v2:16; unsigned int v3:31; };
struct BFu9i_BFu16s_BFu31ll { unsigned int v1:9; unsigned short v2:16; unsigned long long v3:31; };
struct BFu9i_BFu16s_BFu32i { unsigned int v1:9; unsigned short v2:16; unsigned int v3:32; };
struct BFu9i_BFu16s_BFu32ll { unsigned int v1:9; unsigned short v2:16; unsigned long long v3:32; };
struct BFu9i_BFu16s_BFu33 { unsigned int v1:9; unsigned short v2:16; unsigned long long v3:33; };
struct BFu9i_BFu16s_BFu7c { unsigned int v1:9; unsigned short v2:16; unsigned char v3:7; };
struct BFu9i_BFu16s_BFu7i { unsigned int v1:9; unsigned short v2:16; unsigned int v3:7; };
struct BFu9i_BFu16s_BFu7ll { unsigned int v1:9; unsigned short v2:16; unsigned long long v3:7; };
struct BFu9i_BFu16s_BFu7s { unsigned int v1:9; unsigned short v2:16; unsigned short v3:7; };
struct BFu9i_BFu16s_BFu8c { unsigned int v1:9; unsigned short v2:16; unsigned char v3:8; };
struct BFu9i_BFu16s_BFu8i { unsigned int v1:9; unsigned short v2:16; unsigned int v3:8; };
struct BFu9i_BFu16s_BFu8ll { unsigned int v1:9; unsigned short v2:16; unsigned long long v3:8; };
struct BFu9i_BFu16s_BFu8s { unsigned int v1:9; unsigned short v2:16; unsigned short v3:8; };
struct BFu9i_BFu16s_BFu9i { unsigned int v1:9; unsigned short v2:16; unsigned int v3:9; };
struct BFu9i_BFu16s_BFu9ll { unsigned int v1:9; unsigned short v2:16; unsigned long long v3:9; };
struct BFu9i_BFu16s_BFu9s { unsigned int v1:9; unsigned short v2:16; unsigned short v3:9; };
struct BFu9i_BFu16s_C { unsigned int v1:9; unsigned short v2:16; char v3; };
struct BFu9i_BFu16s_D { unsigned int v1:9; unsigned short v2:16; double v3; };
struct BFu9i_BFu16s_F { unsigned int v1:9; unsigned short v2:16; float v3; };
struct BFu9i_BFu16s_I { unsigned int v1:9; unsigned short v2:16; int v3; };
struct BFu9i_BFu16s_Ip { unsigned int v1:9; unsigned short v2:16; int * v3; };
struct BFu9i_BFu16s_L { unsigned int v1:9; unsigned short v2:16; long long v3; };
struct BFu9i_BFu16s_S { unsigned int v1:9; unsigned short v2:16; short v3; };
struct BFu9i_BFu16s_Uc { unsigned int v1:9; unsigned short v2:16; unsigned char v3; };
struct BFu9i_BFu16s_Ui { unsigned int v1:9; unsigned short v2:16; unsigned int v3; };
struct BFu9i_BFu16s_Ul { unsigned int v1:9; unsigned short v2:16; unsigned long long v3; };
struct BFu9i_BFu16s_Us { unsigned int v1:9; unsigned short v2:16; unsigned short v3; };
struct BFu9i_BFu16s_Vp { unsigned int v1:9; unsigned short v2:16; void * v3; };
struct BFu9i_BFu17i { unsigned int v1:9; unsigned int v2:17; };
struct BFu9i_BFu17i_BFu15i { unsigned int v1:9; unsigned int v2:17; unsigned int v3:15; };
struct BFu9i_BFu17i_BFu15ll { unsigned int v1:9; unsigned int v2:17; unsigned long long v3:15; };
struct BFu9i_BFu17i_BFu15s { unsigned int v1:9; unsigned int v2:17; unsigned short v3:15; };
struct BFu9i_BFu17i_BFu16i { unsigned int v1:9; unsigned int v2:17; unsigned int v3:16; };
struct BFu9i_BFu17i_BFu16ll { unsigned int v1:9; unsigned int v2:17; unsigned long long v3:16; };
struct BFu9i_BFu17i_BFu16s { unsigned int v1:9; unsigned int v2:17; unsigned short v3:16; };
struct BFu9i_BFu17i_BFu17i { unsigned int v1:9; unsigned int v2:17; unsigned int v3:17; };
struct BFu9i_BFu17i_BFu17ll { unsigned int v1:9; unsigned int v2:17; unsigned long long v3:17; };
struct BFu9i_BFu17i_BFu1c { unsigned int v1:9; unsigned int v2:17; unsigned char v3:1; };
struct BFu9i_BFu17i_BFu1i { unsigned int v1:9; unsigned int v2:17; unsigned int v3:1; };
struct BFu9i_BFu17i_BFu1ll { unsigned int v1:9; unsigned int v2:17; unsigned long long v3:1; };
struct BFu9i_BFu17i_BFu1s { unsigned int v1:9; unsigned int v2:17; unsigned short v3:1; };
struct BFu9i_BFu17i_BFu31i { unsigned int v1:9; unsigned int v2:17; unsigned int v3:31; };
struct BFu9i_BFu17i_BFu31ll { unsigned int v1:9; unsigned int v2:17; unsigned long long v3:31; };
struct BFu9i_BFu17i_BFu32i { unsigned int v1:9; unsigned int v2:17; unsigned int v3:32; };
struct BFu9i_BFu17i_BFu32ll { unsigned int v1:9; unsigned int v2:17; unsigned long long v3:32; };
struct BFu9i_BFu17i_BFu33 { unsigned int v1:9; unsigned int v2:17; unsigned long long v3:33; };
struct BFu9i_BFu17i_BFu7c { unsigned int v1:9; unsigned int v2:17; unsigned char v3:7; };
struct BFu9i_BFu17i_BFu7i { unsigned int v1:9; unsigned int v2:17; unsigned int v3:7; };
struct BFu9i_BFu17i_BFu7ll { unsigned int v1:9; unsigned int v2:17; unsigned long long v3:7; };
struct BFu9i_BFu17i_BFu7s { unsigned int v1:9; unsigned int v2:17; unsigned short v3:7; };
struct BFu9i_BFu17i_BFu8c { unsigned int v1:9; unsigned int v2:17; unsigned char v3:8; };
struct BFu9i_BFu17i_BFu8i { unsigned int v1:9; unsigned int v2:17; unsigned int v3:8; };
struct BFu9i_BFu17i_BFu8ll { unsigned int v1:9; unsigned int v2:17; unsigned long long v3:8; };
struct BFu9i_BFu17i_BFu8s { unsigned int v1:9; unsigned int v2:17; unsigned short v3:8; };
struct BFu9i_BFu17i_BFu9i { unsigned int v1:9; unsigned int v2:17; unsigned int v3:9; };
struct BFu9i_BFu17i_BFu9ll { unsigned int v1:9; unsigned int v2:17; unsigned long long v3:9; };
struct BFu9i_BFu17i_BFu9s { unsigned int v1:9; unsigned int v2:17; unsigned short v3:9; };
struct BFu9i_BFu17i_C { unsigned int v1:9; unsigned int v2:17; char v3; };
struct BFu9i_BFu17i_D { unsigned int v1:9; unsigned int v2:17; double v3; };
struct BFu9i_BFu17i_F { unsigned int v1:9; unsigned int v2:17; float v3; };
struct BFu9i_BFu17i_I { unsigned int v1:9; unsigned int v2:17; int v3; };
struct BFu9i_BFu17i_Ip { unsigned int v1:9; unsigned int v2:17; int * v3; };
struct BFu9i_BFu17i_L { unsigned int v1:9; unsigned int v2:17; long long v3; };
struct BFu9i_BFu17i_S { unsigned int v1:9; unsigned int v2:17; short v3; };
struct BFu9i_BFu17i_Uc { unsigned int v1:9; unsigned int v2:17; unsigned char v3; };
struct BFu9i_BFu17i_Ui { unsigned int v1:9; unsigned int v2:17; unsigned int v3; };
struct BFu9i_BFu17i_Ul { unsigned int v1:9; unsigned int v2:17; unsigned long long v3; };
struct BFu9i_BFu17i_Us { unsigned int v1:9; unsigned int v2:17; unsigned short v3; };
struct BFu9i_BFu17i_Vp { unsigned int v1:9; unsigned int v2:17; void * v3; };
struct BFu9i_BFu17ll { unsigned int v1:9; unsigned long long v2:17; };
struct BFu9i_BFu17ll_BFu15i { unsigned int v1:9; unsigned long long v2:17; unsigned int v3:15; };
struct BFu9i_BFu17ll_BFu15ll { unsigned int v1:9; unsigned long long v2:17; unsigned long long v3:15; };
struct BFu9i_BFu17ll_BFu15s { unsigned int v1:9; unsigned long long v2:17; unsigned short v3:15; };
struct BFu9i_BFu17ll_BFu16i { unsigned int v1:9; unsigned long long v2:17; unsigned int v3:16; };
struct BFu9i_BFu17ll_BFu16ll { unsigned int v1:9; unsigned long long v2:17; unsigned long long v3:16; };
struct BFu9i_BFu17ll_BFu16s { unsigned int v1:9; unsigned long long v2:17; unsigned short v3:16; };
struct BFu9i_BFu17ll_BFu17i { unsigned int v1:9; unsigned long long v2:17; unsigned int v3:17; };
struct BFu9i_BFu17ll_BFu17ll { unsigned int v1:9; unsigned long long v2:17; unsigned long long v3:17; };
struct BFu9i_BFu17ll_BFu1c { unsigned int v1:9; unsigned long long v2:17; unsigned char v3:1; };
struct BFu9i_BFu17ll_BFu1i { unsigned int v1:9; unsigned long long v2:17; unsigned int v3:1; };
struct BFu9i_BFu17ll_BFu1ll { unsigned int v1:9; unsigned long long v2:17; unsigned long long v3:1; };
struct BFu9i_BFu17ll_BFu1s { unsigned int v1:9; unsigned long long v2:17; unsigned short v3:1; };
struct BFu9i_BFu17ll_BFu31i { unsigned int v1:9; unsigned long long v2:17; unsigned int v3:31; };
struct BFu9i_BFu17ll_BFu31ll { unsigned int v1:9; unsigned long long v2:17; unsigned long long v3:31; };
struct BFu9i_BFu17ll_BFu32i { unsigned int v1:9; unsigned long long v2:17; unsigned int v3:32; };
struct BFu9i_BFu17ll_BFu32ll { unsigned int v1:9; unsigned long long v2:17; unsigned long long v3:32; };
struct BFu9i_BFu17ll_BFu33 { unsigned int v1:9; unsigned long long v2:17; unsigned long long v3:33; };
struct BFu9i_BFu17ll_BFu7c { unsigned int v1:9; unsigned long long v2:17; unsigned char v3:7; };
struct BFu9i_BFu17ll_BFu7i { unsigned int v1:9; unsigned long long v2:17; unsigned int v3:7; };
struct BFu9i_BFu17ll_BFu7ll { unsigned int v1:9; unsigned long long v2:17; unsigned long long v3:7; };
struct BFu9i_BFu17ll_BFu7s { unsigned int v1:9; unsigned long long v2:17; unsigned short v3:7; };
struct BFu9i_BFu17ll_BFu8c { unsigned int v1:9; unsigned long long v2:17; unsigned char v3:8; };
struct BFu9i_BFu17ll_BFu8i { unsigned int v1:9; unsigned long long v2:17; unsigned int v3:8; };
struct BFu9i_BFu17ll_BFu8ll { unsigned int v1:9; unsigned long long v2:17; unsigned long long v3:8; };
struct BFu9i_BFu17ll_BFu8s { unsigned int v1:9; unsigned long long v2:17; unsigned short v3:8; };
struct BFu9i_BFu17ll_BFu9i { unsigned int v1:9; unsigned long long v2:17; unsigned int v3:9; };
struct BFu9i_BFu17ll_BFu9ll { unsigned int v1:9; unsigned long long v2:17; unsigned long long v3:9; };
struct BFu9i_BFu17ll_BFu9s { unsigned int v1:9; unsigned long long v2:17; unsigned short v3:9; };
struct BFu9i_BFu17ll_C { unsigned int v1:9; unsigned long long v2:17; char v3; };
struct BFu9i_BFu17ll_D { unsigned int v1:9; unsigned long long v2:17; double v3; };
struct BFu9i_BFu17ll_F { unsigned int v1:9; unsigned long long v2:17; float v3; };
struct BFu9i_BFu17ll_I { unsigned int v1:9; unsigned long long v2:17; int v3; };
struct BFu9i_BFu17ll_Ip { unsigned int v1:9; unsigned long long v2:17; int * v3; };
struct BFu9i_BFu17ll_L { unsigned int v1:9; unsigned long long v2:17; long long v3; };
struct BFu9i_BFu17ll_S { unsigned int v1:9; unsigned long long v2:17; short v3; };
struct BFu9i_BFu17ll_Uc { unsigned int v1:9; unsigned long long v2:17; unsigned char v3; };
struct BFu9i_BFu17ll_Ui { unsigned int v1:9; unsigned long long v2:17; unsigned int v3; };
struct BFu9i_BFu17ll_Ul { unsigned int v1:9; unsigned long long v2:17; unsigned long long v3; };
struct BFu9i_BFu17ll_Us { unsigned int v1:9; unsigned long long v2:17; unsigned short v3; };
struct BFu9i_BFu17ll_Vp { unsigned int v1:9; unsigned long long v2:17; void * v3; };
struct BFu9i_BFu1c { unsigned int v1:9; unsigned char v2:1; };
struct BFu9i_BFu1c_BFu15i { unsigned int v1:9; unsigned char v2:1; unsigned int v3:15; };
struct BFu9i_BFu1c_BFu15ll { unsigned int v1:9; unsigned char v2:1; unsigned long long v3:15; };
struct BFu9i_BFu1c_BFu15s { unsigned int v1:9; unsigned char v2:1; unsigned short v3:15; };
struct BFu9i_BFu1c_BFu16i { unsigned int v1:9; unsigned char v2:1; unsigned int v3:16; };
struct BFu9i_BFu1c_BFu16ll { unsigned int v1:9; unsigned char v2:1; unsigned long long v3:16; };
struct BFu9i_BFu1c_BFu16s { unsigned int v1:9; unsigned char v2:1; unsigned short v3:16; };
struct BFu9i_BFu1c_BFu17i { unsigned int v1:9; unsigned char v2:1; unsigned int v3:17; };
struct BFu9i_BFu1c_BFu17ll { unsigned int v1:9; unsigned char v2:1; unsigned long long v3:17; };
struct BFu9i_BFu1c_BFu1c { unsigned int v1:9; unsigned char v2:1; unsigned char v3:1; };
struct BFu9i_BFu1c_BFu1i { unsigned int v1:9; unsigned char v2:1; unsigned int v3:1; };
struct BFu9i_BFu1c_BFu1ll { unsigned int v1:9; unsigned char v2:1; unsigned long long v3:1; };
struct BFu9i_BFu1c_BFu1s { unsigned int v1:9; unsigned char v2:1; unsigned short v3:1; };
struct BFu9i_BFu1c_BFu31i { unsigned int v1:9; unsigned char v2:1; unsigned int v3:31; };
struct BFu9i_BFu1c_BFu31ll { unsigned int v1:9; unsigned char v2:1; unsigned long long v3:31; };
struct BFu9i_BFu1c_BFu32i { unsigned int v1:9; unsigned char v2:1; unsigned int v3:32; };
struct BFu9i_BFu1c_BFu32ll { unsigned int v1:9; unsigned char v2:1; unsigned long long v3:32; };
struct BFu9i_BFu1c_BFu33 { unsigned int v1:9; unsigned char v2:1; unsigned long long v3:33; };
struct BFu9i_BFu1c_BFu7c { unsigned int v1:9; unsigned char v2:1; unsigned char v3:7; };
struct BFu9i_BFu1c_BFu7i { unsigned int v1:9; unsigned char v2:1; unsigned int v3:7; };
struct BFu9i_BFu1c_BFu7ll { unsigned int v1:9; unsigned char v2:1; unsigned long long v3:7; };
struct BFu9i_BFu1c_BFu7s { unsigned int v1:9; unsigned char v2:1; unsigned short v3:7; };
struct BFu9i_BFu1c_BFu8c { unsigned int v1:9; unsigned char v2:1; unsigned char v3:8; };
struct BFu9i_BFu1c_BFu8i { unsigned int v1:9; unsigned char v2:1; unsigned int v3:8; };
struct BFu9i_BFu1c_BFu8ll { unsigned int v1:9; unsigned char v2:1; unsigned long long v3:8; };
struct BFu9i_BFu1c_BFu8s { unsigned int v1:9; unsigned char v2:1; unsigned short v3:8; };
struct BFu9i_BFu1c_BFu9i { unsigned int v1:9; unsigned char v2:1; unsigned int v3:9; };
struct BFu9i_BFu1c_BFu9ll { unsigned int v1:9; unsigned char v2:1; unsigned long long v3:9; };
struct BFu9i_BFu1c_BFu9s { unsigned int v1:9; unsigned char v2:1; unsigned short v3:9; };
struct BFu9i_BFu1c_C { unsigned int v1:9; unsigned char v2:1; char v3; };
struct BFu9i_BFu1c_D { unsigned int v1:9; unsigned char v2:1; double v3; };
struct BFu9i_BFu1c_F { unsigned int v1:9; unsigned char v2:1; float v3; };
struct BFu9i_BFu1c_I { unsigned int v1:9; unsigned char v2:1; int v3; };
struct BFu9i_BFu1c_Ip { unsigned int v1:9; unsigned char v2:1; int * v3; };
struct BFu9i_BFu1c_L { unsigned int v1:9; unsigned char v2:1; long long v3; };
struct BFu9i_BFu1c_S { unsigned int v1:9; unsigned char v2:1; short v3; };
struct BFu9i_BFu1c_Uc { unsigned int v1:9; unsigned char v2:1; unsigned char v3; };
struct BFu9i_BFu1c_Ui { unsigned int v1:9; unsigned char v2:1; unsigned int v3; };
struct BFu9i_BFu1c_Ul { unsigned int v1:9; unsigned char v2:1; unsigned long long v3; };
struct BFu9i_BFu1c_Us { unsigned int v1:9; unsigned char v2:1; unsigned short v3; };
struct BFu9i_BFu1c_Vp { unsigned int v1:9; unsigned char v2:1; void * v3; };
struct BFu9i_BFu1i { unsigned int v1:9; unsigned int v2:1; };
struct BFu9i_BFu1i_BFu15i { unsigned int v1:9; unsigned int v2:1; unsigned int v3:15; };
struct BFu9i_BFu1i_BFu15ll { unsigned int v1:9; unsigned int v2:1; unsigned long long v3:15; };
struct BFu9i_BFu1i_BFu15s { unsigned int v1:9; unsigned int v2:1; unsigned short v3:15; };
struct BFu9i_BFu1i_BFu16i { unsigned int v1:9; unsigned int v2:1; unsigned int v3:16; };
struct BFu9i_BFu1i_BFu16ll { unsigned int v1:9; unsigned int v2:1; unsigned long long v3:16; };
struct BFu9i_BFu1i_BFu16s { unsigned int v1:9; unsigned int v2:1; unsigned short v3:16; };
struct BFu9i_BFu1i_BFu17i { unsigned int v1:9; unsigned int v2:1; unsigned int v3:17; };
struct BFu9i_BFu1i_BFu17ll { unsigned int v1:9; unsigned int v2:1; unsigned long long v3:17; };
struct BFu9i_BFu1i_BFu1c { unsigned int v1:9; unsigned int v2:1; unsigned char v3:1; };
struct BFu9i_BFu1i_BFu1i { unsigned int v1:9; unsigned int v2:1; unsigned int v3:1; };
struct BFu9i_BFu1i_BFu1ll { unsigned int v1:9; unsigned int v2:1; unsigned long long v3:1; };
struct BFu9i_BFu1i_BFu1s { unsigned int v1:9; unsigned int v2:1; unsigned short v3:1; };
struct BFu9i_BFu1i_BFu31i { unsigned int v1:9; unsigned int v2:1; unsigned int v3:31; };
struct BFu9i_BFu1i_BFu31ll { unsigned int v1:9; unsigned int v2:1; unsigned long long v3:31; };
struct BFu9i_BFu1i_BFu32i { unsigned int v1:9; unsigned int v2:1; unsigned int v3:32; };
struct BFu9i_BFu1i_BFu32ll { unsigned int v1:9; unsigned int v2:1; unsigned long long v3:32; };
struct BFu9i_BFu1i_BFu33 { unsigned int v1:9; unsigned int v2:1; unsigned long long v3:33; };
struct BFu9i_BFu1i_BFu7c { unsigned int v1:9; unsigned int v2:1; unsigned char v3:7; };
struct BFu9i_BFu1i_BFu7i { unsigned int v1:9; unsigned int v2:1; unsigned int v3:7; };
struct BFu9i_BFu1i_BFu7ll { unsigned int v1:9; unsigned int v2:1; unsigned long long v3:7; };
struct BFu9i_BFu1i_BFu7s { unsigned int v1:9; unsigned int v2:1; unsigned short v3:7; };
struct BFu9i_BFu1i_BFu8c { unsigned int v1:9; unsigned int v2:1; unsigned char v3:8; };
struct BFu9i_BFu1i_BFu8i { unsigned int v1:9; unsigned int v2:1; unsigned int v3:8; };
struct BFu9i_BFu1i_BFu8ll { unsigned int v1:9; unsigned int v2:1; unsigned long long v3:8; };
struct BFu9i_BFu1i_BFu8s { unsigned int v1:9; unsigned int v2:1; unsigned short v3:8; };
struct BFu9i_BFu1i_BFu9i { unsigned int v1:9; unsigned int v2:1; unsigned int v3:9; };
struct BFu9i_BFu1i_BFu9ll { unsigned int v1:9; unsigned int v2:1; unsigned long long v3:9; };
struct BFu9i_BFu1i_BFu9s { unsigned int v1:9; unsigned int v2:1; unsigned short v3:9; };
struct BFu9i_BFu1i_C { unsigned int v1:9; unsigned int v2:1; char v3; };
struct BFu9i_BFu1i_D { unsigned int v1:9; unsigned int v2:1; double v3; };
struct BFu9i_BFu1i_F { unsigned int v1:9; unsigned int v2:1; float v3; };
struct BFu9i_BFu1i_I { unsigned int v1:9; unsigned int v2:1; int v3; };
struct BFu9i_BFu1i_Ip { unsigned int v1:9; unsigned int v2:1; int * v3; };
struct BFu9i_BFu1i_L { unsigned int v1:9; unsigned int v2:1; long long v3; };
struct BFu9i_BFu1i_S { unsigned int v1:9; unsigned int v2:1; short v3; };
struct BFu9i_BFu1i_Uc { unsigned int v1:9; unsigned int v2:1; unsigned char v3; };
struct BFu9i_BFu1i_Ui { unsigned int v1:9; unsigned int v2:1; unsigned int v3; };
struct BFu9i_BFu1i_Ul { unsigned int v1:9; unsigned int v2:1; unsigned long long v3; };
struct BFu9i_BFu1i_Us { unsigned int v1:9; unsigned int v2:1; unsigned short v3; };
struct BFu9i_BFu1i_Vp { unsigned int v1:9; unsigned int v2:1; void * v3; };
struct BFu9i_BFu1ll { unsigned int v1:9; unsigned long long v2:1; };
struct BFu9i_BFu1ll_BFu15i { unsigned int v1:9; unsigned long long v2:1; unsigned int v3:15; };
struct BFu9i_BFu1ll_BFu15ll { unsigned int v1:9; unsigned long long v2:1; unsigned long long v3:15; };
struct BFu9i_BFu1ll_BFu15s { unsigned int v1:9; unsigned long long v2:1; unsigned short v3:15; };
struct BFu9i_BFu1ll_BFu16i { unsigned int v1:9; unsigned long long v2:1; unsigned int v3:16; };
struct BFu9i_BFu1ll_BFu16ll { unsigned int v1:9; unsigned long long v2:1; unsigned long long v3:16; };
struct BFu9i_BFu1ll_BFu16s { unsigned int v1:9; unsigned long long v2:1; unsigned short v3:16; };
struct BFu9i_BFu1ll_BFu17i { unsigned int v1:9; unsigned long long v2:1; unsigned int v3:17; };
struct BFu9i_BFu1ll_BFu17ll { unsigned int v1:9; unsigned long long v2:1; unsigned long long v3:17; };
struct BFu9i_BFu1ll_BFu1c { unsigned int v1:9; unsigned long long v2:1; unsigned char v3:1; };
struct BFu9i_BFu1ll_BFu1i { unsigned int v1:9; unsigned long long v2:1; unsigned int v3:1; };
struct BFu9i_BFu1ll_BFu1ll { unsigned int v1:9; unsigned long long v2:1; unsigned long long v3:1; };
struct BFu9i_BFu1ll_BFu1s { unsigned int v1:9; unsigned long long v2:1; unsigned short v3:1; };
struct BFu9i_BFu1ll_BFu31i { unsigned int v1:9; unsigned long long v2:1; unsigned int v3:31; };
struct BFu9i_BFu1ll_BFu31ll { unsigned int v1:9; unsigned long long v2:1; unsigned long long v3:31; };
struct BFu9i_BFu1ll_BFu32i { unsigned int v1:9; unsigned long long v2:1; unsigned int v3:32; };
struct BFu9i_BFu1ll_BFu32ll { unsigned int v1:9; unsigned long long v2:1; unsigned long long v3:32; };
struct BFu9i_BFu1ll_BFu33 { unsigned int v1:9; unsigned long long v2:1; unsigned long long v3:33; };
struct BFu9i_BFu1ll_BFu7c { unsigned int v1:9; unsigned long long v2:1; unsigned char v3:7; };
struct BFu9i_BFu1ll_BFu7i { unsigned int v1:9; unsigned long long v2:1; unsigned int v3:7; };
struct BFu9i_BFu1ll_BFu7ll { unsigned int v1:9; unsigned long long v2:1; unsigned long long v3:7; };
struct BFu9i_BFu1ll_BFu7s { unsigned int v1:9; unsigned long long v2:1; unsigned short v3:7; };
struct BFu9i_BFu1ll_BFu8c { unsigned int v1:9; unsigned long long v2:1; unsigned char v3:8; };
struct BFu9i_BFu1ll_BFu8i { unsigned int v1:9; unsigned long long v2:1; unsigned int v3:8; };
struct BFu9i_BFu1ll_BFu8ll { unsigned int v1:9; unsigned long long v2:1; unsigned long long v3:8; };
struct BFu9i_BFu1ll_BFu8s { unsigned int v1:9; unsigned long long v2:1; unsigned short v3:8; };
struct BFu9i_BFu1ll_BFu9i { unsigned int v1:9; unsigned long long v2:1; unsigned int v3:9; };
struct BFu9i_BFu1ll_BFu9ll { unsigned int v1:9; unsigned long long v2:1; unsigned long long v3:9; };
struct BFu9i_BFu1ll_BFu9s { unsigned int v1:9; unsigned long long v2:1; unsigned short v3:9; };
struct BFu9i_BFu1ll_C { unsigned int v1:9; unsigned long long v2:1; char v3; };
struct BFu9i_BFu1ll_D { unsigned int v1:9; unsigned long long v2:1; double v3; };
struct BFu9i_BFu1ll_F { unsigned int v1:9; unsigned long long v2:1; float v3; };
struct BFu9i_BFu1ll_I { unsigned int v1:9; unsigned long long v2:1; int v3; };
struct BFu9i_BFu1ll_Ip { unsigned int v1:9; unsigned long long v2:1; int * v3; };
struct BFu9i_BFu1ll_L { unsigned int v1:9; unsigned long long v2:1; long long v3; };
struct BFu9i_BFu1ll_S { unsigned int v1:9; unsigned long long v2:1; short v3; };
struct BFu9i_BFu1ll_Uc { unsigned int v1:9; unsigned long long v2:1; unsigned char v3; };
struct BFu9i_BFu1ll_Ui { unsigned int v1:9; unsigned long long v2:1; unsigned int v3; };
struct BFu9i_BFu1ll_Ul { unsigned int v1:9; unsigned long long v2:1; unsigned long long v3; };
struct BFu9i_BFu1ll_Us { unsigned int v1:9; unsigned long long v2:1; unsigned short v3; };
struct BFu9i_BFu1ll_Vp { unsigned int v1:9; unsigned long long v2:1; void * v3; };
struct BFu9i_BFu1s { unsigned int v1:9; unsigned short v2:1; };
struct BFu9i_BFu1s_BFu15i { unsigned int v1:9; unsigned short v2:1; unsigned int v3:15; };
struct BFu9i_BFu1s_BFu15ll { unsigned int v1:9; unsigned short v2:1; unsigned long long v3:15; };
struct BFu9i_BFu1s_BFu15s { unsigned int v1:9; unsigned short v2:1; unsigned short v3:15; };
struct BFu9i_BFu1s_BFu16i { unsigned int v1:9; unsigned short v2:1; unsigned int v3:16; };
struct BFu9i_BFu1s_BFu16ll { unsigned int v1:9; unsigned short v2:1; unsigned long long v3:16; };
struct BFu9i_BFu1s_BFu16s { unsigned int v1:9; unsigned short v2:1; unsigned short v3:16; };
struct BFu9i_BFu1s_BFu17i { unsigned int v1:9; unsigned short v2:1; unsigned int v3:17; };
struct BFu9i_BFu1s_BFu17ll { unsigned int v1:9; unsigned short v2:1; unsigned long long v3:17; };
struct BFu9i_BFu1s_BFu1c { unsigned int v1:9; unsigned short v2:1; unsigned char v3:1; };
struct BFu9i_BFu1s_BFu1i { unsigned int v1:9; unsigned short v2:1; unsigned int v3:1; };
struct BFu9i_BFu1s_BFu1ll { unsigned int v1:9; unsigned short v2:1; unsigned long long v3:1; };
struct BFu9i_BFu1s_BFu1s { unsigned int v1:9; unsigned short v2:1; unsigned short v3:1; };
struct BFu9i_BFu1s_BFu31i { unsigned int v1:9; unsigned short v2:1; unsigned int v3:31; };
struct BFu9i_BFu1s_BFu31ll { unsigned int v1:9; unsigned short v2:1; unsigned long long v3:31; };
struct BFu9i_BFu1s_BFu32i { unsigned int v1:9; unsigned short v2:1; unsigned int v3:32; };
struct BFu9i_BFu1s_BFu32ll { unsigned int v1:9; unsigned short v2:1; unsigned long long v3:32; };
struct BFu9i_BFu1s_BFu33 { unsigned int v1:9; unsigned short v2:1; unsigned long long v3:33; };
struct BFu9i_BFu1s_BFu7c { unsigned int v1:9; unsigned short v2:1; unsigned char v3:7; };
struct BFu9i_BFu1s_BFu7i { unsigned int v1:9; unsigned short v2:1; unsigned int v3:7; };
struct BFu9i_BFu1s_BFu7ll { unsigned int v1:9; unsigned short v2:1; unsigned long long v3:7; };
struct BFu9i_BFu1s_BFu7s { unsigned int v1:9; unsigned short v2:1; unsigned short v3:7; };
struct BFu9i_BFu1s_BFu8c { unsigned int v1:9; unsigned short v2:1; unsigned char v3:8; };
struct BFu9i_BFu1s_BFu8i { unsigned int v1:9; unsigned short v2:1; unsigned int v3:8; };
struct BFu9i_BFu1s_BFu8ll { unsigned int v1:9; unsigned short v2:1; unsigned long long v3:8; };
struct BFu9i_BFu1s_BFu8s { unsigned int v1:9; unsigned short v2:1; unsigned short v3:8; };
struct BFu9i_BFu1s_BFu9i { unsigned int v1:9; unsigned short v2:1; unsigned int v3:9; };
struct BFu9i_BFu1s_BFu9ll { unsigned int v1:9; unsigned short v2:1; unsigned long long v3:9; };
struct BFu9i_BFu1s_BFu9s { unsigned int v1:9; unsigned short v2:1; unsigned short v3:9; };
struct BFu9i_BFu1s_C { unsigned int v1:9; unsigned short v2:1; char v3; };
struct BFu9i_BFu1s_D { unsigned int v1:9; unsigned short v2:1; double v3; };
struct BFu9i_BFu1s_F { unsigned int v1:9; unsigned short v2:1; float v3; };
struct BFu9i_BFu1s_I { unsigned int v1:9; unsigned short v2:1; int v3; };
struct BFu9i_BFu1s_Ip { unsigned int v1:9; unsigned short v2:1; int * v3; };
struct BFu9i_BFu1s_L { unsigned int v1:9; unsigned short v2:1; long long v3; };
struct BFu9i_BFu1s_S { unsigned int v1:9; unsigned short v2:1; short v3; };
struct BFu9i_BFu1s_Uc { unsigned int v1:9; unsigned short v2:1; unsigned char v3; };
struct BFu9i_BFu1s_Ui { unsigned int v1:9; unsigned short v2:1; unsigned int v3; };
struct BFu9i_BFu1s_Ul { unsigned int v1:9; unsigned short v2:1; unsigned long long v3; };
struct BFu9i_BFu1s_Us { unsigned int v1:9; unsigned short v2:1; unsigned short v3; };
struct BFu9i_BFu1s_Vp { unsigned int v1:9; unsigned short v2:1; void * v3; };
struct BFu9i_BFu31i { unsigned int v1:9; unsigned int v2:31; };
struct BFu9i_BFu31i_BFu15i { unsigned int v1:9; unsigned int v2:31; unsigned int v3:15; };
struct BFu9i_BFu31i_BFu15ll { unsigned int v1:9; unsigned int v2:31; unsigned long long v3:15; };
struct BFu9i_BFu31i_BFu15s { unsigned int v1:9; unsigned int v2:31; unsigned short v3:15; };
struct BFu9i_BFu31i_BFu16i { unsigned int v1:9; unsigned int v2:31; unsigned int v3:16; };
struct BFu9i_BFu31i_BFu16ll { unsigned int v1:9; unsigned int v2:31; unsigned long long v3:16; };
struct BFu9i_BFu31i_BFu16s { unsigned int v1:9; unsigned int v2:31; unsigned short v3:16; };
struct BFu9i_BFu31i_BFu17i { unsigned int v1:9; unsigned int v2:31; unsigned int v3:17; };
struct BFu9i_BFu31i_BFu17ll { unsigned int v1:9; unsigned int v2:31; unsigned long long v3:17; };
struct BFu9i_BFu31i_BFu1c { unsigned int v1:9; unsigned int v2:31; unsigned char v3:1; };
struct BFu9i_BFu31i_BFu1i { unsigned int v1:9; unsigned int v2:31; unsigned int v3:1; };
struct BFu9i_BFu31i_BFu1ll { unsigned int v1:9; unsigned int v2:31; unsigned long long v3:1; };
struct BFu9i_BFu31i_BFu1s { unsigned int v1:9; unsigned int v2:31; unsigned short v3:1; };
struct BFu9i_BFu31i_BFu31i { unsigned int v1:9; unsigned int v2:31; unsigned int v3:31; };
struct BFu9i_BFu31i_BFu31ll { unsigned int v1:9; unsigned int v2:31; unsigned long long v3:31; };
struct BFu9i_BFu31i_BFu32i { unsigned int v1:9; unsigned int v2:31; unsigned int v3:32; };
struct BFu9i_BFu31i_BFu32ll { unsigned int v1:9; unsigned int v2:31; unsigned long long v3:32; };
struct BFu9i_BFu31i_BFu33 { unsigned int v1:9; unsigned int v2:31; unsigned long long v3:33; };
struct BFu9i_BFu31i_BFu7c { unsigned int v1:9; unsigned int v2:31; unsigned char v3:7; };
struct BFu9i_BFu31i_BFu7i { unsigned int v1:9; unsigned int v2:31; unsigned int v3:7; };
struct BFu9i_BFu31i_BFu7ll { unsigned int v1:9; unsigned int v2:31; unsigned long long v3:7; };
struct BFu9i_BFu31i_BFu7s { unsigned int v1:9; unsigned int v2:31; unsigned short v3:7; };
struct BFu9i_BFu31i_BFu8c { unsigned int v1:9; unsigned int v2:31; unsigned char v3:8; };
struct BFu9i_BFu31i_BFu8i { unsigned int v1:9; unsigned int v2:31; unsigned int v3:8; };
struct BFu9i_BFu31i_BFu8ll { unsigned int v1:9; unsigned int v2:31; unsigned long long v3:8; };
struct BFu9i_BFu31i_BFu8s { unsigned int v1:9; unsigned int v2:31; unsigned short v3:8; };
struct BFu9i_BFu31i_BFu9i { unsigned int v1:9; unsigned int v2:31; unsigned int v3:9; };
struct BFu9i_BFu31i_BFu9ll { unsigned int v1:9; unsigned int v2:31; unsigned long long v3:9; };
struct BFu9i_BFu31i_BFu9s { unsigned int v1:9; unsigned int v2:31; unsigned short v3:9; };
struct BFu9i_BFu31i_C { unsigned int v1:9; unsigned int v2:31; char v3; };
struct BFu9i_BFu31i_D { unsigned int v1:9; unsigned int v2:31; double v3; };
struct BFu9i_BFu31i_F { unsigned int v1:9; unsigned int v2:31; float v3; };
struct BFu9i_BFu31i_I { unsigned int v1:9; unsigned int v2:31; int v3; };
struct BFu9i_BFu31i_Ip { unsigned int v1:9; unsigned int v2:31; int * v3; };
struct BFu9i_BFu31i_L { unsigned int v1:9; unsigned int v2:31; long long v3; };
struct BFu9i_BFu31i_S { unsigned int v1:9; unsigned int v2:31; short v3; };
struct BFu9i_BFu31i_Uc { unsigned int v1:9; unsigned int v2:31; unsigned char v3; };
struct BFu9i_BFu31i_Ui { unsigned int v1:9; unsigned int v2:31; unsigned int v3; };
struct BFu9i_BFu31i_Ul { unsigned int v1:9; unsigned int v2:31; unsigned long long v3; };
struct BFu9i_BFu31i_Us { unsigned int v1:9; unsigned int v2:31; unsigned short v3; };
struct BFu9i_BFu31i_Vp { unsigned int v1:9; unsigned int v2:31; void * v3; };
struct BFu9i_BFu31ll { unsigned int v1:9; unsigned long long v2:31; };
struct BFu9i_BFu31ll_BFu15i { unsigned int v1:9; unsigned long long v2:31; unsigned int v3:15; };
struct BFu9i_BFu31ll_BFu15ll { unsigned int v1:9; unsigned long long v2:31; unsigned long long v3:15; };
struct BFu9i_BFu31ll_BFu15s { unsigned int v1:9; unsigned long long v2:31; unsigned short v3:15; };
struct BFu9i_BFu31ll_BFu16i { unsigned int v1:9; unsigned long long v2:31; unsigned int v3:16; };
struct BFu9i_BFu31ll_BFu16ll { unsigned int v1:9; unsigned long long v2:31; unsigned long long v3:16; };
struct BFu9i_BFu31ll_BFu16s { unsigned int v1:9; unsigned long long v2:31; unsigned short v3:16; };
struct BFu9i_BFu31ll_BFu17i { unsigned int v1:9; unsigned long long v2:31; unsigned int v3:17; };
struct BFu9i_BFu31ll_BFu17ll { unsigned int v1:9; unsigned long long v2:31; unsigned long long v3:17; };
struct BFu9i_BFu31ll_BFu1c { unsigned int v1:9; unsigned long long v2:31; unsigned char v3:1; };
struct BFu9i_BFu31ll_BFu1i { unsigned int v1:9; unsigned long long v2:31; unsigned int v3:1; };
struct BFu9i_BFu31ll_BFu1ll { unsigned int v1:9; unsigned long long v2:31; unsigned long long v3:1; };
struct BFu9i_BFu31ll_BFu1s { unsigned int v1:9; unsigned long long v2:31; unsigned short v3:1; };
struct BFu9i_BFu31ll_BFu31i { unsigned int v1:9; unsigned long long v2:31; unsigned int v3:31; };
struct BFu9i_BFu31ll_BFu31ll { unsigned int v1:9; unsigned long long v2:31; unsigned long long v3:31; };
struct BFu9i_BFu31ll_BFu32i { unsigned int v1:9; unsigned long long v2:31; unsigned int v3:32; };
struct BFu9i_BFu31ll_BFu32ll { unsigned int v1:9; unsigned long long v2:31; unsigned long long v3:32; };
struct BFu9i_BFu31ll_BFu33 { unsigned int v1:9; unsigned long long v2:31; unsigned long long v3:33; };
struct BFu9i_BFu31ll_BFu7c { unsigned int v1:9; unsigned long long v2:31; unsigned char v3:7; };
struct BFu9i_BFu31ll_BFu7i { unsigned int v1:9; unsigned long long v2:31; unsigned int v3:7; };
struct BFu9i_BFu31ll_BFu7ll { unsigned int v1:9; unsigned long long v2:31; unsigned long long v3:7; };
struct BFu9i_BFu31ll_BFu7s { unsigned int v1:9; unsigned long long v2:31; unsigned short v3:7; };
struct BFu9i_BFu31ll_BFu8c { unsigned int v1:9; unsigned long long v2:31; unsigned char v3:8; };
struct BFu9i_BFu31ll_BFu8i { unsigned int v1:9; unsigned long long v2:31; unsigned int v3:8; };
struct BFu9i_BFu31ll_BFu8ll { unsigned int v1:9; unsigned long long v2:31; unsigned long long v3:8; };
struct BFu9i_BFu31ll_BFu8s { unsigned int v1:9; unsigned long long v2:31; unsigned short v3:8; };
struct BFu9i_BFu31ll_BFu9i { unsigned int v1:9; unsigned long long v2:31; unsigned int v3:9; };
struct BFu9i_BFu31ll_BFu9ll { unsigned int v1:9; unsigned long long v2:31; unsigned long long v3:9; };
struct BFu9i_BFu31ll_BFu9s { unsigned int v1:9; unsigned long long v2:31; unsigned short v3:9; };
struct BFu9i_BFu31ll_C { unsigned int v1:9; unsigned long long v2:31; char v3; };
struct BFu9i_BFu31ll_D { unsigned int v1:9; unsigned long long v2:31; double v3; };
struct BFu9i_BFu31ll_F { unsigned int v1:9; unsigned long long v2:31; float v3; };
struct BFu9i_BFu31ll_I { unsigned int v1:9; unsigned long long v2:31; int v3; };
struct BFu9i_BFu31ll_Ip { unsigned int v1:9; unsigned long long v2:31; int * v3; };
struct BFu9i_BFu31ll_L { unsigned int v1:9; unsigned long long v2:31; long long v3; };
struct BFu9i_BFu31ll_S { unsigned int v1:9; unsigned long long v2:31; short v3; };
struct BFu9i_BFu31ll_Uc { unsigned int v1:9; unsigned long long v2:31; unsigned char v3; };
struct BFu9i_BFu31ll_Ui { unsigned int v1:9; unsigned long long v2:31; unsigned int v3; };
struct BFu9i_BFu31ll_Ul { unsigned int v1:9; unsigned long long v2:31; unsigned long long v3; };
struct BFu9i_BFu31ll_Us { unsigned int v1:9; unsigned long long v2:31; unsigned short v3; };
struct BFu9i_BFu31ll_Vp { unsigned int v1:9; unsigned long long v2:31; void * v3; };
struct BFu9i_BFu32i { unsigned int v1:9; unsigned int v2:32; };
struct BFu9i_BFu32i_BFu15i { unsigned int v1:9; unsigned int v2:32; unsigned int v3:15; };
struct BFu9i_BFu32i_BFu15ll { unsigned int v1:9; unsigned int v2:32; unsigned long long v3:15; };
struct BFu9i_BFu32i_BFu15s { unsigned int v1:9; unsigned int v2:32; unsigned short v3:15; };
struct BFu9i_BFu32i_BFu16i { unsigned int v1:9; unsigned int v2:32; unsigned int v3:16; };
struct BFu9i_BFu32i_BFu16ll { unsigned int v1:9; unsigned int v2:32; unsigned long long v3:16; };
struct BFu9i_BFu32i_BFu16s { unsigned int v1:9; unsigned int v2:32; unsigned short v3:16; };
struct BFu9i_BFu32i_BFu17i { unsigned int v1:9; unsigned int v2:32; unsigned int v3:17; };
struct BFu9i_BFu32i_BFu17ll { unsigned int v1:9; unsigned int v2:32; unsigned long long v3:17; };
struct BFu9i_BFu32i_BFu1c { unsigned int v1:9; unsigned int v2:32; unsigned char v3:1; };
struct BFu9i_BFu32i_BFu1i { unsigned int v1:9; unsigned int v2:32; unsigned int v3:1; };
struct BFu9i_BFu32i_BFu1ll { unsigned int v1:9; unsigned int v2:32; unsigned long long v3:1; };
struct BFu9i_BFu32i_BFu1s { unsigned int v1:9; unsigned int v2:32; unsigned short v3:1; };
struct BFu9i_BFu32i_BFu31i { unsigned int v1:9; unsigned int v2:32; unsigned int v3:31; };
struct BFu9i_BFu32i_BFu31ll { unsigned int v1:9; unsigned int v2:32; unsigned long long v3:31; };
struct BFu9i_BFu32i_BFu32i { unsigned int v1:9; unsigned int v2:32; unsigned int v3:32; };
struct BFu9i_BFu32i_BFu32ll { unsigned int v1:9; unsigned int v2:32; unsigned long long v3:32; };
struct BFu9i_BFu32i_BFu33 { unsigned int v1:9; unsigned int v2:32; unsigned long long v3:33; };
struct BFu9i_BFu32i_BFu7c { unsigned int v1:9; unsigned int v2:32; unsigned char v3:7; };
struct BFu9i_BFu32i_BFu7i { unsigned int v1:9; unsigned int v2:32; unsigned int v3:7; };
struct BFu9i_BFu32i_BFu7ll { unsigned int v1:9; unsigned int v2:32; unsigned long long v3:7; };
struct BFu9i_BFu32i_BFu7s { unsigned int v1:9; unsigned int v2:32; unsigned short v3:7; };
struct BFu9i_BFu32i_BFu8c { unsigned int v1:9; unsigned int v2:32; unsigned char v3:8; };
struct BFu9i_BFu32i_BFu8i { unsigned int v1:9; unsigned int v2:32; unsigned int v3:8; };
struct BFu9i_BFu32i_BFu8ll { unsigned int v1:9; unsigned int v2:32; unsigned long long v3:8; };
struct BFu9i_BFu32i_BFu8s { unsigned int v1:9; unsigned int v2:32; unsigned short v3:8; };
struct BFu9i_BFu32i_BFu9i { unsigned int v1:9; unsigned int v2:32; unsigned int v3:9; };
struct BFu9i_BFu32i_BFu9ll { unsigned int v1:9; unsigned int v2:32; unsigned long long v3:9; };
struct BFu9i_BFu32i_BFu9s { unsigned int v1:9; unsigned int v2:32; unsigned short v3:9; };
struct BFu9i_BFu32i_C { unsigned int v1:9; unsigned int v2:32; char v3; };
struct BFu9i_BFu32i_D { unsigned int v1:9; unsigned int v2:32; double v3; };
struct BFu9i_BFu32i_F { unsigned int v1:9; unsigned int v2:32; float v3; };
struct BFu9i_BFu32i_I { unsigned int v1:9; unsigned int v2:32; int v3; };
struct BFu9i_BFu32i_Ip { unsigned int v1:9; unsigned int v2:32; int * v3; };
struct BFu9i_BFu32i_L { unsigned int v1:9; unsigned int v2:32; long long v3; };
struct BFu9i_BFu32i_S { unsigned int v1:9; unsigned int v2:32; short v3; };
struct BFu9i_BFu32i_Uc { unsigned int v1:9; unsigned int v2:32; unsigned char v3; };
struct BFu9i_BFu32i_Ui { unsigned int v1:9; unsigned int v2:32; unsigned int v3; };
struct BFu9i_BFu32i_Ul { unsigned int v1:9; unsigned int v2:32; unsigned long long v3; };
struct BFu9i_BFu32i_Us { unsigned int v1:9; unsigned int v2:32; unsigned short v3; };
struct BFu9i_BFu32i_Vp { unsigned int v1:9; unsigned int v2:32; void * v3; };
struct BFu9i_BFu32ll { unsigned int v1:9; unsigned long long v2:32; };
struct BFu9i_BFu32ll_BFu15i { unsigned int v1:9; unsigned long long v2:32; unsigned int v3:15; };
struct BFu9i_BFu32ll_BFu15ll { unsigned int v1:9; unsigned long long v2:32; unsigned long long v3:15; };
struct BFu9i_BFu32ll_BFu15s { unsigned int v1:9; unsigned long long v2:32; unsigned short v3:15; };
struct BFu9i_BFu32ll_BFu16i { unsigned int v1:9; unsigned long long v2:32; unsigned int v3:16; };
struct BFu9i_BFu32ll_BFu16ll { unsigned int v1:9; unsigned long long v2:32; unsigned long long v3:16; };
struct BFu9i_BFu32ll_BFu16s { unsigned int v1:9; unsigned long long v2:32; unsigned short v3:16; };
struct BFu9i_BFu32ll_BFu17i { unsigned int v1:9; unsigned long long v2:32; unsigned int v3:17; };
struct BFu9i_BFu32ll_BFu17ll { unsigned int v1:9; unsigned long long v2:32; unsigned long long v3:17; };
struct BFu9i_BFu32ll_BFu1c { unsigned int v1:9; unsigned long long v2:32; unsigned char v3:1; };
struct BFu9i_BFu32ll_BFu1i { unsigned int v1:9; unsigned long long v2:32; unsigned int v3:1; };
struct BFu9i_BFu32ll_BFu1ll { unsigned int v1:9; unsigned long long v2:32; unsigned long long v3:1; };
struct BFu9i_BFu32ll_BFu1s { unsigned int v1:9; unsigned long long v2:32; unsigned short v3:1; };
struct BFu9i_BFu32ll_BFu31i { unsigned int v1:9; unsigned long long v2:32; unsigned int v3:31; };
struct BFu9i_BFu32ll_BFu31ll { unsigned int v1:9; unsigned long long v2:32; unsigned long long v3:31; };
struct BFu9i_BFu32ll_BFu32i { unsigned int v1:9; unsigned long long v2:32; unsigned int v3:32; };
struct BFu9i_BFu32ll_BFu32ll { unsigned int v1:9; unsigned long long v2:32; unsigned long long v3:32; };
struct BFu9i_BFu32ll_BFu33 { unsigned int v1:9; unsigned long long v2:32; unsigned long long v3:33; };
struct BFu9i_BFu32ll_BFu7c { unsigned int v1:9; unsigned long long v2:32; unsigned char v3:7; };
struct BFu9i_BFu32ll_BFu7i { unsigned int v1:9; unsigned long long v2:32; unsigned int v3:7; };
struct BFu9i_BFu32ll_BFu7ll { unsigned int v1:9; unsigned long long v2:32; unsigned long long v3:7; };
struct BFu9i_BFu32ll_BFu7s { unsigned int v1:9; unsigned long long v2:32; unsigned short v3:7; };
struct BFu9i_BFu32ll_BFu8c { unsigned int v1:9; unsigned long long v2:32; unsigned char v3:8; };
struct BFu9i_BFu32ll_BFu8i { unsigned int v1:9; unsigned long long v2:32; unsigned int v3:8; };
struct BFu9i_BFu32ll_BFu8ll { unsigned int v1:9; unsigned long long v2:32; unsigned long long v3:8; };
struct BFu9i_BFu32ll_BFu8s { unsigned int v1:9; unsigned long long v2:32; unsigned short v3:8; };
struct BFu9i_BFu32ll_BFu9i { unsigned int v1:9; unsigned long long v2:32; unsigned int v3:9; };
struct BFu9i_BFu32ll_BFu9ll { unsigned int v1:9; unsigned long long v2:32; unsigned long long v3:9; };
struct BFu9i_BFu32ll_BFu9s { unsigned int v1:9; unsigned long long v2:32; unsigned short v3:9; };
struct BFu9i_BFu32ll_C { unsigned int v1:9; unsigned long long v2:32; char v3; };
struct BFu9i_BFu32ll_D { unsigned int v1:9; unsigned long long v2:32; double v3; };
struct BFu9i_BFu32ll_F { unsigned int v1:9; unsigned long long v2:32; float v3; };
struct BFu9i_BFu32ll_I { unsigned int v1:9; unsigned long long v2:32; int v3; };
struct BFu9i_BFu32ll_Ip { unsigned int v1:9; unsigned long long v2:32; int * v3; };
struct BFu9i_BFu32ll_L { unsigned int v1:9; unsigned long long v2:32; long long v3; };
struct BFu9i_BFu32ll_S { unsigned int v1:9; unsigned long long v2:32; short v3; };
struct BFu9i_BFu32ll_Uc { unsigned int v1:9; unsigned long long v2:32; unsigned char v3; };
struct BFu9i_BFu32ll_Ui { unsigned int v1:9; unsigned long long v2:32; unsigned int v3; };
struct BFu9i_BFu32ll_Ul { unsigned int v1:9; unsigned long long v2:32; unsigned long long v3; };
struct BFu9i_BFu32ll_Us { unsigned int v1:9; unsigned long long v2:32; unsigned short v3; };
struct BFu9i_BFu32ll_Vp { unsigned int v1:9; unsigned long long v2:32; void * v3; };
struct BFu9i_BFu33 { unsigned int v1:9; unsigned long long v2:33; };
struct BFu9i_BFu33_BFu15i { unsigned int v1:9; unsigned long long v2:33; unsigned int v3:15; };
struct BFu9i_BFu33_BFu15ll { unsigned int v1:9; unsigned long long v2:33; unsigned long long v3:15; };
struct BFu9i_BFu33_BFu15s { unsigned int v1:9; unsigned long long v2:33; unsigned short v3:15; };
struct BFu9i_BFu33_BFu16i { unsigned int v1:9; unsigned long long v2:33; unsigned int v3:16; };
struct BFu9i_BFu33_BFu16ll { unsigned int v1:9; unsigned long long v2:33; unsigned long long v3:16; };
struct BFu9i_BFu33_BFu16s { unsigned int v1:9; unsigned long long v2:33; unsigned short v3:16; };
struct BFu9i_BFu33_BFu17i { unsigned int v1:9; unsigned long long v2:33; unsigned int v3:17; };
struct BFu9i_BFu33_BFu17ll { unsigned int v1:9; unsigned long long v2:33; unsigned long long v3:17; };
struct BFu9i_BFu33_BFu1c { unsigned int v1:9; unsigned long long v2:33; unsigned char v3:1; };
struct BFu9i_BFu33_BFu1i { unsigned int v1:9; unsigned long long v2:33; unsigned int v3:1; };
struct BFu9i_BFu33_BFu1ll { unsigned int v1:9; unsigned long long v2:33; unsigned long long v3:1; };
struct BFu9i_BFu33_BFu1s { unsigned int v1:9; unsigned long long v2:33; unsigned short v3:1; };
struct BFu9i_BFu33_BFu31i { unsigned int v1:9; unsigned long long v2:33; unsigned int v3:31; };
struct BFu9i_BFu33_BFu31ll { unsigned int v1:9; unsigned long long v2:33; unsigned long long v3:31; };
struct BFu9i_BFu33_BFu32i { unsigned int v1:9; unsigned long long v2:33; unsigned int v3:32; };
struct BFu9i_BFu33_BFu32ll { unsigned int v1:9; unsigned long long v2:33; unsigned long long v3:32; };
struct BFu9i_BFu33_BFu33 { unsigned int v1:9; unsigned long long v2:33; unsigned long long v3:33; };
struct BFu9i_BFu33_BFu7c { unsigned int v1:9; unsigned long long v2:33; unsigned char v3:7; };
struct BFu9i_BFu33_BFu7i { unsigned int v1:9; unsigned long long v2:33; unsigned int v3:7; };
struct BFu9i_BFu33_BFu7ll { unsigned int v1:9; unsigned long long v2:33; unsigned long long v3:7; };
struct BFu9i_BFu33_BFu7s { unsigned int v1:9; unsigned long long v2:33; unsigned short v3:7; };
struct BFu9i_BFu33_BFu8c { unsigned int v1:9; unsigned long long v2:33; unsigned char v3:8; };
struct BFu9i_BFu33_BFu8i { unsigned int v1:9; unsigned long long v2:33; unsigned int v3:8; };
struct BFu9i_BFu33_BFu8ll { unsigned int v1:9; unsigned long long v2:33; unsigned long long v3:8; };
struct BFu9i_BFu33_BFu8s { unsigned int v1:9; unsigned long long v2:33; unsigned short v3:8; };
struct BFu9i_BFu33_BFu9i { unsigned int v1:9; unsigned long long v2:33; unsigned int v3:9; };
struct BFu9i_BFu33_BFu9ll { unsigned int v1:9; unsigned long long v2:33; unsigned long long v3:9; };
struct BFu9i_BFu33_BFu9s { unsigned int v1:9; unsigned long long v2:33; unsigned short v3:9; };
struct BFu9i_BFu33_C { unsigned int v1:9; unsigned long long v2:33; char v3; };
struct BFu9i_BFu33_D { unsigned int v1:9; unsigned long long v2:33; double v3; };
struct BFu9i_BFu33_F { unsigned int v1:9; unsigned long long v2:33; float v3; };
struct BFu9i_BFu33_I { unsigned int v1:9; unsigned long long v2:33; int v3; };
struct BFu9i_BFu33_Ip { unsigned int v1:9; unsigned long long v2:33; int * v3; };
struct BFu9i_BFu33_L { unsigned int v1:9; unsigned long long v2:33; long long v3; };
struct BFu9i_BFu33_S { unsigned int v1:9; unsigned long long v2:33; short v3; };
struct BFu9i_BFu33_Uc { unsigned int v1:9; unsigned long long v2:33; unsigned char v3; };
struct BFu9i_BFu33_Ui { unsigned int v1:9; unsigned long long v2:33; unsigned int v3; };
struct BFu9i_BFu33_Ul { unsigned int v1:9; unsigned long long v2:33; unsigned long long v3; };
struct BFu9i_BFu33_Us { unsigned int v1:9; unsigned long long v2:33; unsigned short v3; };
struct BFu9i_BFu33_Vp { unsigned int v1:9; unsigned long long v2:33; void * v3; };
struct BFu9i_BFu7c { unsigned int v1:9; unsigned char v2:7; };
struct BFu9i_BFu7c_BFu15i { unsigned int v1:9; unsigned char v2:7; unsigned int v3:15; };
struct BFu9i_BFu7c_BFu15ll { unsigned int v1:9; unsigned char v2:7; unsigned long long v3:15; };
struct BFu9i_BFu7c_BFu15s { unsigned int v1:9; unsigned char v2:7; unsigned short v3:15; };
struct BFu9i_BFu7c_BFu16i { unsigned int v1:9; unsigned char v2:7; unsigned int v3:16; };
struct BFu9i_BFu7c_BFu16ll { unsigned int v1:9; unsigned char v2:7; unsigned long long v3:16; };
struct BFu9i_BFu7c_BFu16s { unsigned int v1:9; unsigned char v2:7; unsigned short v3:16; };
struct BFu9i_BFu7c_BFu17i { unsigned int v1:9; unsigned char v2:7; unsigned int v3:17; };
struct BFu9i_BFu7c_BFu17ll { unsigned int v1:9; unsigned char v2:7; unsigned long long v3:17; };
struct BFu9i_BFu7c_BFu1c { unsigned int v1:9; unsigned char v2:7; unsigned char v3:1; };
struct BFu9i_BFu7c_BFu1i { unsigned int v1:9; unsigned char v2:7; unsigned int v3:1; };
struct BFu9i_BFu7c_BFu1ll { unsigned int v1:9; unsigned char v2:7; unsigned long long v3:1; };
struct BFu9i_BFu7c_BFu1s { unsigned int v1:9; unsigned char v2:7; unsigned short v3:1; };
struct BFu9i_BFu7c_BFu31i { unsigned int v1:9; unsigned char v2:7; unsigned int v3:31; };
struct BFu9i_BFu7c_BFu31ll { unsigned int v1:9; unsigned char v2:7; unsigned long long v3:31; };
struct BFu9i_BFu7c_BFu32i { unsigned int v1:9; unsigned char v2:7; unsigned int v3:32; };
struct BFu9i_BFu7c_BFu32ll { unsigned int v1:9; unsigned char v2:7; unsigned long long v3:32; };
struct BFu9i_BFu7c_BFu33 { unsigned int v1:9; unsigned char v2:7; unsigned long long v3:33; };
struct BFu9i_BFu7c_BFu7c { unsigned int v1:9; unsigned char v2:7; unsigned char v3:7; };
struct BFu9i_BFu7c_BFu7i { unsigned int v1:9; unsigned char v2:7; unsigned int v3:7; };
struct BFu9i_BFu7c_BFu7ll { unsigned int v1:9; unsigned char v2:7; unsigned long long v3:7; };
struct BFu9i_BFu7c_BFu7s { unsigned int v1:9; unsigned char v2:7; unsigned short v3:7; };
struct BFu9i_BFu7c_BFu8c { unsigned int v1:9; unsigned char v2:7; unsigned char v3:8; };
struct BFu9i_BFu7c_BFu8i { unsigned int v1:9; unsigned char v2:7; unsigned int v3:8; };
struct BFu9i_BFu7c_BFu8ll { unsigned int v1:9; unsigned char v2:7; unsigned long long v3:8; };
struct BFu9i_BFu7c_BFu8s { unsigned int v1:9; unsigned char v2:7; unsigned short v3:8; };
struct BFu9i_BFu7c_BFu9i { unsigned int v1:9; unsigned char v2:7; unsigned int v3:9; };
struct BFu9i_BFu7c_BFu9ll { unsigned int v1:9; unsigned char v2:7; unsigned long long v3:9; };
struct BFu9i_BFu7c_BFu9s { unsigned int v1:9; unsigned char v2:7; unsigned short v3:9; };
struct BFu9i_BFu7c_C { unsigned int v1:9; unsigned char v2:7; char v3; };
struct BFu9i_BFu7c_D { unsigned int v1:9; unsigned char v2:7; double v3; };
struct BFu9i_BFu7c_F { unsigned int v1:9; unsigned char v2:7; float v3; };
struct BFu9i_BFu7c_I { unsigned int v1:9; unsigned char v2:7; int v3; };
struct BFu9i_BFu7c_Ip { unsigned int v1:9; unsigned char v2:7; int * v3; };
struct BFu9i_BFu7c_L { unsigned int v1:9; unsigned char v2:7; long long v3; };
struct BFu9i_BFu7c_S { unsigned int v1:9; unsigned char v2:7; short v3; };
struct BFu9i_BFu7c_Uc { unsigned int v1:9; unsigned char v2:7; unsigned char v3; };
struct BFu9i_BFu7c_Ui { unsigned int v1:9; unsigned char v2:7; unsigned int v3; };
struct BFu9i_BFu7c_Ul { unsigned int v1:9; unsigned char v2:7; unsigned long long v3; };
struct BFu9i_BFu7c_Us { unsigned int v1:9; unsigned char v2:7; unsigned short v3; };
struct BFu9i_BFu7c_Vp { unsigned int v1:9; unsigned char v2:7; void * v3; };
struct BFu9i_BFu7i { unsigned int v1:9; unsigned int v2:7; };
struct BFu9i_BFu7i_BFu15i { unsigned int v1:9; unsigned int v2:7; unsigned int v3:15; };
struct BFu9i_BFu7i_BFu15ll { unsigned int v1:9; unsigned int v2:7; unsigned long long v3:15; };
struct BFu9i_BFu7i_BFu15s { unsigned int v1:9; unsigned int v2:7; unsigned short v3:15; };
struct BFu9i_BFu7i_BFu16i { unsigned int v1:9; unsigned int v2:7; unsigned int v3:16; };
struct BFu9i_BFu7i_BFu16ll { unsigned int v1:9; unsigned int v2:7; unsigned long long v3:16; };
struct BFu9i_BFu7i_BFu16s { unsigned int v1:9; unsigned int v2:7; unsigned short v3:16; };
struct BFu9i_BFu7i_BFu17i { unsigned int v1:9; unsigned int v2:7; unsigned int v3:17; };
struct BFu9i_BFu7i_BFu17ll { unsigned int v1:9; unsigned int v2:7; unsigned long long v3:17; };
struct BFu9i_BFu7i_BFu1c { unsigned int v1:9; unsigned int v2:7; unsigned char v3:1; };
struct BFu9i_BFu7i_BFu1i { unsigned int v1:9; unsigned int v2:7; unsigned int v3:1; };
struct BFu9i_BFu7i_BFu1ll { unsigned int v1:9; unsigned int v2:7; unsigned long long v3:1; };
struct BFu9i_BFu7i_BFu1s { unsigned int v1:9; unsigned int v2:7; unsigned short v3:1; };
struct BFu9i_BFu7i_BFu31i { unsigned int v1:9; unsigned int v2:7; unsigned int v3:31; };
struct BFu9i_BFu7i_BFu31ll { unsigned int v1:9; unsigned int v2:7; unsigned long long v3:31; };
struct BFu9i_BFu7i_BFu32i { unsigned int v1:9; unsigned int v2:7; unsigned int v3:32; };
struct BFu9i_BFu7i_BFu32ll { unsigned int v1:9; unsigned int v2:7; unsigned long long v3:32; };
struct BFu9i_BFu7i_BFu33 { unsigned int v1:9; unsigned int v2:7; unsigned long long v3:33; };
struct BFu9i_BFu7i_BFu7c { unsigned int v1:9; unsigned int v2:7; unsigned char v3:7; };
struct BFu9i_BFu7i_BFu7i { unsigned int v1:9; unsigned int v2:7; unsigned int v3:7; };
struct BFu9i_BFu7i_BFu7ll { unsigned int v1:9; unsigned int v2:7; unsigned long long v3:7; };
struct BFu9i_BFu7i_BFu7s { unsigned int v1:9; unsigned int v2:7; unsigned short v3:7; };
struct BFu9i_BFu7i_BFu8c { unsigned int v1:9; unsigned int v2:7; unsigned char v3:8; };
struct BFu9i_BFu7i_BFu8i { unsigned int v1:9; unsigned int v2:7; unsigned int v3:8; };
struct BFu9i_BFu7i_BFu8ll { unsigned int v1:9; unsigned int v2:7; unsigned long long v3:8; };
struct BFu9i_BFu7i_BFu8s { unsigned int v1:9; unsigned int v2:7; unsigned short v3:8; };
struct BFu9i_BFu7i_BFu9i { unsigned int v1:9; unsigned int v2:7; unsigned int v3:9; };
struct BFu9i_BFu7i_BFu9ll { unsigned int v1:9; unsigned int v2:7; unsigned long long v3:9; };
struct BFu9i_BFu7i_BFu9s { unsigned int v1:9; unsigned int v2:7; unsigned short v3:9; };
struct BFu9i_BFu7i_C { unsigned int v1:9; unsigned int v2:7; char v3; };
struct BFu9i_BFu7i_D { unsigned int v1:9; unsigned int v2:7; double v3; };
struct BFu9i_BFu7i_F { unsigned int v1:9; unsigned int v2:7; float v3; };
struct BFu9i_BFu7i_I { unsigned int v1:9; unsigned int v2:7; int v3; };
struct BFu9i_BFu7i_Ip { unsigned int v1:9; unsigned int v2:7; int * v3; };
struct BFu9i_BFu7i_L { unsigned int v1:9; unsigned int v2:7; long long v3; };
struct BFu9i_BFu7i_S { unsigned int v1:9; unsigned int v2:7; short v3; };
struct BFu9i_BFu7i_Uc { unsigned int v1:9; unsigned int v2:7; unsigned char v3; };
struct BFu9i_BFu7i_Ui { unsigned int v1:9; unsigned int v2:7; unsigned int v3; };
struct BFu9i_BFu7i_Ul { unsigned int v1:9; unsigned int v2:7; unsigned long long v3; };
struct BFu9i_BFu7i_Us { unsigned int v1:9; unsigned int v2:7; unsigned short v3; };
struct BFu9i_BFu7i_Vp { unsigned int v1:9; unsigned int v2:7; void * v3; };
struct BFu9i_BFu7ll { unsigned int v1:9; unsigned long long v2:7; };
struct BFu9i_BFu7ll_BFu15i { unsigned int v1:9; unsigned long long v2:7; unsigned int v3:15; };
struct BFu9i_BFu7ll_BFu15ll { unsigned int v1:9; unsigned long long v2:7; unsigned long long v3:15; };
struct BFu9i_BFu7ll_BFu15s { unsigned int v1:9; unsigned long long v2:7; unsigned short v3:15; };
struct BFu9i_BFu7ll_BFu16i { unsigned int v1:9; unsigned long long v2:7; unsigned int v3:16; };
struct BFu9i_BFu7ll_BFu16ll { unsigned int v1:9; unsigned long long v2:7; unsigned long long v3:16; };
struct BFu9i_BFu7ll_BFu16s { unsigned int v1:9; unsigned long long v2:7; unsigned short v3:16; };
struct BFu9i_BFu7ll_BFu17i { unsigned int v1:9; unsigned long long v2:7; unsigned int v3:17; };
struct BFu9i_BFu7ll_BFu17ll { unsigned int v1:9; unsigned long long v2:7; unsigned long long v3:17; };
struct BFu9i_BFu7ll_BFu1c { unsigned int v1:9; unsigned long long v2:7; unsigned char v3:1; };
struct BFu9i_BFu7ll_BFu1i { unsigned int v1:9; unsigned long long v2:7; unsigned int v3:1; };
struct BFu9i_BFu7ll_BFu1ll { unsigned int v1:9; unsigned long long v2:7; unsigned long long v3:1; };
struct BFu9i_BFu7ll_BFu1s { unsigned int v1:9; unsigned long long v2:7; unsigned short v3:1; };
struct BFu9i_BFu7ll_BFu31i { unsigned int v1:9; unsigned long long v2:7; unsigned int v3:31; };
struct BFu9i_BFu7ll_BFu31ll { unsigned int v1:9; unsigned long long v2:7; unsigned long long v3:31; };
struct BFu9i_BFu7ll_BFu32i { unsigned int v1:9; unsigned long long v2:7; unsigned int v3:32; };
struct BFu9i_BFu7ll_BFu32ll { unsigned int v1:9; unsigned long long v2:7; unsigned long long v3:32; };
struct BFu9i_BFu7ll_BFu33 { unsigned int v1:9; unsigned long long v2:7; unsigned long long v3:33; };
struct BFu9i_BFu7ll_BFu7c { unsigned int v1:9; unsigned long long v2:7; unsigned char v3:7; };
struct BFu9i_BFu7ll_BFu7i { unsigned int v1:9; unsigned long long v2:7; unsigned int v3:7; };
struct BFu9i_BFu7ll_BFu7ll { unsigned int v1:9; unsigned long long v2:7; unsigned long long v3:7; };
struct BFu9i_BFu7ll_BFu7s { unsigned int v1:9; unsigned long long v2:7; unsigned short v3:7; };
struct BFu9i_BFu7ll_BFu8c { unsigned int v1:9; unsigned long long v2:7; unsigned char v3:8; };
struct BFu9i_BFu7ll_BFu8i { unsigned int v1:9; unsigned long long v2:7; unsigned int v3:8; };
struct BFu9i_BFu7ll_BFu8ll { unsigned int v1:9; unsigned long long v2:7; unsigned long long v3:8; };
struct BFu9i_BFu7ll_BFu8s { unsigned int v1:9; unsigned long long v2:7; unsigned short v3:8; };
struct BFu9i_BFu7ll_BFu9i { unsigned int v1:9; unsigned long long v2:7; unsigned int v3:9; };
struct BFu9i_BFu7ll_BFu9ll { unsigned int v1:9; unsigned long long v2:7; unsigned long long v3:9; };
struct BFu9i_BFu7ll_BFu9s { unsigned int v1:9; unsigned long long v2:7; unsigned short v3:9; };
struct BFu9i_BFu7ll_C { unsigned int v1:9; unsigned long long v2:7; char v3; };
struct BFu9i_BFu7ll_D { unsigned int v1:9; unsigned long long v2:7; double v3; };
struct BFu9i_BFu7ll_F { unsigned int v1:9; unsigned long long v2:7; float v3; };
struct BFu9i_BFu7ll_I { unsigned int v1:9; unsigned long long v2:7; int v3; };
struct BFu9i_BFu7ll_Ip { unsigned int v1:9; unsigned long long v2:7; int * v3; };
struct BFu9i_BFu7ll_L { unsigned int v1:9; unsigned long long v2:7; long long v3; };
struct BFu9i_BFu7ll_S { unsigned int v1:9; unsigned long long v2:7; short v3; };
struct BFu9i_BFu7ll_Uc { unsigned int v1:9; unsigned long long v2:7; unsigned char v3; };
struct BFu9i_BFu7ll_Ui { unsigned int v1:9; unsigned long long v2:7; unsigned int v3; };
struct BFu9i_BFu7ll_Ul { unsigned int v1:9; unsigned long long v2:7; unsigned long long v3; };
struct BFu9i_BFu7ll_Us { unsigned int v1:9; unsigned long long v2:7; unsigned short v3; };
struct BFu9i_BFu7ll_Vp { unsigned int v1:9; unsigned long long v2:7; void * v3; };
struct BFu9i_BFu7s { unsigned int v1:9; unsigned short v2:7; };
struct BFu9i_BFu7s_BFu15i { unsigned int v1:9; unsigned short v2:7; unsigned int v3:15; };
struct BFu9i_BFu7s_BFu15ll { unsigned int v1:9; unsigned short v2:7; unsigned long long v3:15; };
struct BFu9i_BFu7s_BFu15s { unsigned int v1:9; unsigned short v2:7; unsigned short v3:15; };
struct BFu9i_BFu7s_BFu16i { unsigned int v1:9; unsigned short v2:7; unsigned int v3:16; };
struct BFu9i_BFu7s_BFu16ll { unsigned int v1:9; unsigned short v2:7; unsigned long long v3:16; };
struct BFu9i_BFu7s_BFu16s { unsigned int v1:9; unsigned short v2:7; unsigned short v3:16; };
struct BFu9i_BFu7s_BFu17i { unsigned int v1:9; unsigned short v2:7; unsigned int v3:17; };
struct BFu9i_BFu7s_BFu17ll { unsigned int v1:9; unsigned short v2:7; unsigned long long v3:17; };
struct BFu9i_BFu7s_BFu1c { unsigned int v1:9; unsigned short v2:7; unsigned char v3:1; };
struct BFu9i_BFu7s_BFu1i { unsigned int v1:9; unsigned short v2:7; unsigned int v3:1; };
struct BFu9i_BFu7s_BFu1ll { unsigned int v1:9; unsigned short v2:7; unsigned long long v3:1; };
struct BFu9i_BFu7s_BFu1s { unsigned int v1:9; unsigned short v2:7; unsigned short v3:1; };
struct BFu9i_BFu7s_BFu31i { unsigned int v1:9; unsigned short v2:7; unsigned int v3:31; };
struct BFu9i_BFu7s_BFu31ll { unsigned int v1:9; unsigned short v2:7; unsigned long long v3:31; };
struct BFu9i_BFu7s_BFu32i { unsigned int v1:9; unsigned short v2:7; unsigned int v3:32; };
struct BFu9i_BFu7s_BFu32ll { unsigned int v1:9; unsigned short v2:7; unsigned long long v3:32; };
struct BFu9i_BFu7s_BFu33 { unsigned int v1:9; unsigned short v2:7; unsigned long long v3:33; };
struct BFu9i_BFu7s_BFu7c { unsigned int v1:9; unsigned short v2:7; unsigned char v3:7; };
struct BFu9i_BFu7s_BFu7i { unsigned int v1:9; unsigned short v2:7; unsigned int v3:7; };
struct BFu9i_BFu7s_BFu7ll { unsigned int v1:9; unsigned short v2:7; unsigned long long v3:7; };
struct BFu9i_BFu7s_BFu7s { unsigned int v1:9; unsigned short v2:7; unsigned short v3:7; };
struct BFu9i_BFu7s_BFu8c { unsigned int v1:9; unsigned short v2:7; unsigned char v3:8; };
struct BFu9i_BFu7s_BFu8i { unsigned int v1:9; unsigned short v2:7; unsigned int v3:8; };
struct BFu9i_BFu7s_BFu8ll { unsigned int v1:9; unsigned short v2:7; unsigned long long v3:8; };
struct BFu9i_BFu7s_BFu8s { unsigned int v1:9; unsigned short v2:7; unsigned short v3:8; };
struct BFu9i_BFu7s_BFu9i { unsigned int v1:9; unsigned short v2:7; unsigned int v3:9; };
struct BFu9i_BFu7s_BFu9ll { unsigned int v1:9; unsigned short v2:7; unsigned long long v3:9; };
struct BFu9i_BFu7s_BFu9s { unsigned int v1:9; unsigned short v2:7; unsigned short v3:9; };
struct BFu9i_BFu7s_C { unsigned int v1:9; unsigned short v2:7; char v3; };
struct BFu9i_BFu7s_D { unsigned int v1:9; unsigned short v2:7; double v3; };
struct BFu9i_BFu7s_F { unsigned int v1:9; unsigned short v2:7; float v3; };
struct BFu9i_BFu7s_I { unsigned int v1:9; unsigned short v2:7; int v3; };
struct BFu9i_BFu7s_Ip { unsigned int v1:9; unsigned short v2:7; int * v3; };
struct BFu9i_BFu7s_L { unsigned int v1:9; unsigned short v2:7; long long v3; };
struct BFu9i_BFu7s_S { unsigned int v1:9; unsigned short v2:7; short v3; };
struct BFu9i_BFu7s_Uc { unsigned int v1:9; unsigned short v2:7; unsigned char v3; };
struct BFu9i_BFu7s_Ui { unsigned int v1:9; unsigned short v2:7; unsigned int v3; };
struct BFu9i_BFu7s_Ul { unsigned int v1:9; unsigned short v2:7; unsigned long long v3; };
struct BFu9i_BFu7s_Us { unsigned int v1:9; unsigned short v2:7; unsigned short v3; };
struct BFu9i_BFu7s_Vp { unsigned int v1:9; unsigned short v2:7; void * v3; };
struct BFu9i_BFu8c { unsigned int v1:9; unsigned char v2:8; };
struct BFu9i_BFu8c_BFu15i { unsigned int v1:9; unsigned char v2:8; unsigned int v3:15; };
struct BFu9i_BFu8c_BFu15ll { unsigned int v1:9; unsigned char v2:8; unsigned long long v3:15; };
struct BFu9i_BFu8c_BFu15s { unsigned int v1:9; unsigned char v2:8; unsigned short v3:15; };
struct BFu9i_BFu8c_BFu16i { unsigned int v1:9; unsigned char v2:8; unsigned int v3:16; };
struct BFu9i_BFu8c_BFu16ll { unsigned int v1:9; unsigned char v2:8; unsigned long long v3:16; };
struct BFu9i_BFu8c_BFu16s { unsigned int v1:9; unsigned char v2:8; unsigned short v3:16; };
struct BFu9i_BFu8c_BFu17i { unsigned int v1:9; unsigned char v2:8; unsigned int v3:17; };
struct BFu9i_BFu8c_BFu17ll { unsigned int v1:9; unsigned char v2:8; unsigned long long v3:17; };
struct BFu9i_BFu8c_BFu1c { unsigned int v1:9; unsigned char v2:8; unsigned char v3:1; };
struct BFu9i_BFu8c_BFu1i { unsigned int v1:9; unsigned char v2:8; unsigned int v3:1; };
struct BFu9i_BFu8c_BFu1ll { unsigned int v1:9; unsigned char v2:8; unsigned long long v3:1; };
struct BFu9i_BFu8c_BFu1s { unsigned int v1:9; unsigned char v2:8; unsigned short v3:1; };
struct BFu9i_BFu8c_BFu31i { unsigned int v1:9; unsigned char v2:8; unsigned int v3:31; };
struct BFu9i_BFu8c_BFu31ll { unsigned int v1:9; unsigned char v2:8; unsigned long long v3:31; };
struct BFu9i_BFu8c_BFu32i { unsigned int v1:9; unsigned char v2:8; unsigned int v3:32; };
struct BFu9i_BFu8c_BFu32ll { unsigned int v1:9; unsigned char v2:8; unsigned long long v3:32; };
struct BFu9i_BFu8c_BFu33 { unsigned int v1:9; unsigned char v2:8; unsigned long long v3:33; };
struct BFu9i_BFu8c_BFu7c { unsigned int v1:9; unsigned char v2:8; unsigned char v3:7; };
struct BFu9i_BFu8c_BFu7i { unsigned int v1:9; unsigned char v2:8; unsigned int v3:7; };
struct BFu9i_BFu8c_BFu7ll { unsigned int v1:9; unsigned char v2:8; unsigned long long v3:7; };
struct BFu9i_BFu8c_BFu7s { unsigned int v1:9; unsigned char v2:8; unsigned short v3:7; };
struct BFu9i_BFu8c_BFu8c { unsigned int v1:9; unsigned char v2:8; unsigned char v3:8; };
struct BFu9i_BFu8c_BFu8i { unsigned int v1:9; unsigned char v2:8; unsigned int v3:8; };
struct BFu9i_BFu8c_BFu8ll { unsigned int v1:9; unsigned char v2:8; unsigned long long v3:8; };
struct BFu9i_BFu8c_BFu8s { unsigned int v1:9; unsigned char v2:8; unsigned short v3:8; };
struct BFu9i_BFu8c_BFu9i { unsigned int v1:9; unsigned char v2:8; unsigned int v3:9; };
struct BFu9i_BFu8c_BFu9ll { unsigned int v1:9; unsigned char v2:8; unsigned long long v3:9; };
struct BFu9i_BFu8c_BFu9s { unsigned int v1:9; unsigned char v2:8; unsigned short v3:9; };
struct BFu9i_BFu8c_C { unsigned int v1:9; unsigned char v2:8; char v3; };
struct BFu9i_BFu8c_D { unsigned int v1:9; unsigned char v2:8; double v3; };
struct BFu9i_BFu8c_F { unsigned int v1:9; unsigned char v2:8; float v3; };
struct BFu9i_BFu8c_I { unsigned int v1:9; unsigned char v2:8; int v3; };
struct BFu9i_BFu8c_Ip { unsigned int v1:9; unsigned char v2:8; int * v3; };
struct BFu9i_BFu8c_L { unsigned int v1:9; unsigned char v2:8; long long v3; };
struct BFu9i_BFu8c_S { unsigned int v1:9; unsigned char v2:8; short v3; };
struct BFu9i_BFu8c_Uc { unsigned int v1:9; unsigned char v2:8; unsigned char v3; };
struct BFu9i_BFu8c_Ui { unsigned int v1:9; unsigned char v2:8; unsigned int v3; };
struct BFu9i_BFu8c_Ul { unsigned int v1:9; unsigned char v2:8; unsigned long long v3; };
struct BFu9i_BFu8c_Us { unsigned int v1:9; unsigned char v2:8; unsigned short v3; };
struct BFu9i_BFu8c_Vp { unsigned int v1:9; unsigned char v2:8; void * v3; };
struct BFu9i_BFu8i { unsigned int v1:9; unsigned int v2:8; };
struct BFu9i_BFu8i_BFu15i { unsigned int v1:9; unsigned int v2:8; unsigned int v3:15; };
struct BFu9i_BFu8i_BFu15ll { unsigned int v1:9; unsigned int v2:8; unsigned long long v3:15; };
struct BFu9i_BFu8i_BFu15s { unsigned int v1:9; unsigned int v2:8; unsigned short v3:15; };
struct BFu9i_BFu8i_BFu16i { unsigned int v1:9; unsigned int v2:8; unsigned int v3:16; };
struct BFu9i_BFu8i_BFu16ll { unsigned int v1:9; unsigned int v2:8; unsigned long long v3:16; };
struct BFu9i_BFu8i_BFu16s { unsigned int v1:9; unsigned int v2:8; unsigned short v3:16; };
struct BFu9i_BFu8i_BFu17i { unsigned int v1:9; unsigned int v2:8; unsigned int v3:17; };
struct BFu9i_BFu8i_BFu17ll { unsigned int v1:9; unsigned int v2:8; unsigned long long v3:17; };
struct BFu9i_BFu8i_BFu1c { unsigned int v1:9; unsigned int v2:8; unsigned char v3:1; };
struct BFu9i_BFu8i_BFu1i { unsigned int v1:9; unsigned int v2:8; unsigned int v3:1; };
struct BFu9i_BFu8i_BFu1ll { unsigned int v1:9; unsigned int v2:8; unsigned long long v3:1; };
struct BFu9i_BFu8i_BFu1s { unsigned int v1:9; unsigned int v2:8; unsigned short v3:1; };
struct BFu9i_BFu8i_BFu31i { unsigned int v1:9; unsigned int v2:8; unsigned int v3:31; };
struct BFu9i_BFu8i_BFu31ll { unsigned int v1:9; unsigned int v2:8; unsigned long long v3:31; };
struct BFu9i_BFu8i_BFu32i { unsigned int v1:9; unsigned int v2:8; unsigned int v3:32; };
struct BFu9i_BFu8i_BFu32ll { unsigned int v1:9; unsigned int v2:8; unsigned long long v3:32; };
struct BFu9i_BFu8i_BFu33 { unsigned int v1:9; unsigned int v2:8; unsigned long long v3:33; };
struct BFu9i_BFu8i_BFu7c { unsigned int v1:9; unsigned int v2:8; unsigned char v3:7; };
struct BFu9i_BFu8i_BFu7i { unsigned int v1:9; unsigned int v2:8; unsigned int v3:7; };
struct BFu9i_BFu8i_BFu7ll { unsigned int v1:9; unsigned int v2:8; unsigned long long v3:7; };
struct BFu9i_BFu8i_BFu7s { unsigned int v1:9; unsigned int v2:8; unsigned short v3:7; };
struct BFu9i_BFu8i_BFu8c { unsigned int v1:9; unsigned int v2:8; unsigned char v3:8; };
struct BFu9i_BFu8i_BFu8i { unsigned int v1:9; unsigned int v2:8; unsigned int v3:8; };
struct BFu9i_BFu8i_BFu8ll { unsigned int v1:9; unsigned int v2:8; unsigned long long v3:8; };
struct BFu9i_BFu8i_BFu8s { unsigned int v1:9; unsigned int v2:8; unsigned short v3:8; };
struct BFu9i_BFu8i_BFu9i { unsigned int v1:9; unsigned int v2:8; unsigned int v3:9; };
struct BFu9i_BFu8i_BFu9ll { unsigned int v1:9; unsigned int v2:8; unsigned long long v3:9; };
struct BFu9i_BFu8i_BFu9s { unsigned int v1:9; unsigned int v2:8; unsigned short v3:9; };
struct BFu9i_BFu8i_C { unsigned int v1:9; unsigned int v2:8; char v3; };
struct BFu9i_BFu8i_D { unsigned int v1:9; unsigned int v2:8; double v3; };
struct BFu9i_BFu8i_F { unsigned int v1:9; unsigned int v2:8; float v3; };
struct BFu9i_BFu8i_I { unsigned int v1:9; unsigned int v2:8; int v3; };
struct BFu9i_BFu8i_Ip { unsigned int v1:9; unsigned int v2:8; int * v3; };
struct BFu9i_BFu8i_L { unsigned int v1:9; unsigned int v2:8; long long v3; };
struct BFu9i_BFu8i_S { unsigned int v1:9; unsigned int v2:8; short v3; };
struct BFu9i_BFu8i_Uc { unsigned int v1:9; unsigned int v2:8; unsigned char v3; };
struct BFu9i_BFu8i_Ui { unsigned int v1:9; unsigned int v2:8; unsigned int v3; };
struct BFu9i_BFu8i_Ul { unsigned int v1:9; unsigned int v2:8; unsigned long long v3; };
struct BFu9i_BFu8i_Us { unsigned int v1:9; unsigned int v2:8; unsigned short v3; };
struct BFu9i_BFu8i_Vp { unsigned int v1:9; unsigned int v2:8; void * v3; };
struct BFu9i_BFu8ll { unsigned int v1:9; unsigned long long v2:8; };
struct BFu9i_BFu8ll_BFu15i { unsigned int v1:9; unsigned long long v2:8; unsigned int v3:15; };
struct BFu9i_BFu8ll_BFu15ll { unsigned int v1:9; unsigned long long v2:8; unsigned long long v3:15; };
struct BFu9i_BFu8ll_BFu15s { unsigned int v1:9; unsigned long long v2:8; unsigned short v3:15; };
struct BFu9i_BFu8ll_BFu16i { unsigned int v1:9; unsigned long long v2:8; unsigned int v3:16; };
struct BFu9i_BFu8ll_BFu16ll { unsigned int v1:9; unsigned long long v2:8; unsigned long long v3:16; };
struct BFu9i_BFu8ll_BFu16s { unsigned int v1:9; unsigned long long v2:8; unsigned short v3:16; };
struct BFu9i_BFu8ll_BFu17i { unsigned int v1:9; unsigned long long v2:8; unsigned int v3:17; };
struct BFu9i_BFu8ll_BFu17ll { unsigned int v1:9; unsigned long long v2:8; unsigned long long v3:17; };
struct BFu9i_BFu8ll_BFu1c { unsigned int v1:9; unsigned long long v2:8; unsigned char v3:1; };
struct BFu9i_BFu8ll_BFu1i { unsigned int v1:9; unsigned long long v2:8; unsigned int v3:1; };
struct BFu9i_BFu8ll_BFu1ll { unsigned int v1:9; unsigned long long v2:8; unsigned long long v3:1; };
struct BFu9i_BFu8ll_BFu1s { unsigned int v1:9; unsigned long long v2:8; unsigned short v3:1; };
struct BFu9i_BFu8ll_BFu31i { unsigned int v1:9; unsigned long long v2:8; unsigned int v3:31; };
struct BFu9i_BFu8ll_BFu31ll { unsigned int v1:9; unsigned long long v2:8; unsigned long long v3:31; };
struct BFu9i_BFu8ll_BFu32i { unsigned int v1:9; unsigned long long v2:8; unsigned int v3:32; };
struct BFu9i_BFu8ll_BFu32ll { unsigned int v1:9; unsigned long long v2:8; unsigned long long v3:32; };
struct BFu9i_BFu8ll_BFu33 { unsigned int v1:9; unsigned long long v2:8; unsigned long long v3:33; };
struct BFu9i_BFu8ll_BFu7c { unsigned int v1:9; unsigned long long v2:8; unsigned char v3:7; };
struct BFu9i_BFu8ll_BFu7i { unsigned int v1:9; unsigned long long v2:8; unsigned int v3:7; };
struct BFu9i_BFu8ll_BFu7ll { unsigned int v1:9; unsigned long long v2:8; unsigned long long v3:7; };
struct BFu9i_BFu8ll_BFu7s { unsigned int v1:9; unsigned long long v2:8; unsigned short v3:7; };
struct BFu9i_BFu8ll_BFu8c { unsigned int v1:9; unsigned long long v2:8; unsigned char v3:8; };
struct BFu9i_BFu8ll_BFu8i { unsigned int v1:9; unsigned long long v2:8; unsigned int v3:8; };
struct BFu9i_BFu8ll_BFu8ll { unsigned int v1:9; unsigned long long v2:8; unsigned long long v3:8; };
struct BFu9i_BFu8ll_BFu8s { unsigned int v1:9; unsigned long long v2:8; unsigned short v3:8; };
struct BFu9i_BFu8ll_BFu9i { unsigned int v1:9; unsigned long long v2:8; unsigned int v3:9; };
struct BFu9i_BFu8ll_BFu9ll { unsigned int v1:9; unsigned long long v2:8; unsigned long long v3:9; };
struct BFu9i_BFu8ll_BFu9s { unsigned int v1:9; unsigned long long v2:8; unsigned short v3:9; };
struct BFu9i_BFu8ll_C { unsigned int v1:9; unsigned long long v2:8; char v3; };
struct BFu9i_BFu8ll_D { unsigned int v1:9; unsigned long long v2:8; double v3; };
struct BFu9i_BFu8ll_F { unsigned int v1:9; unsigned long long v2:8; float v3; };
struct BFu9i_BFu8ll_I { unsigned int v1:9; unsigned long long v2:8; int v3; };
struct BFu9i_BFu8ll_Ip { unsigned int v1:9; unsigned long long v2:8; int * v3; };
struct BFu9i_BFu8ll_L { unsigned int v1:9; unsigned long long v2:8; long long v3; };
struct BFu9i_BFu8ll_S { unsigned int v1:9; unsigned long long v2:8; short v3; };
struct BFu9i_BFu8ll_Uc { unsigned int v1:9; unsigned long long v2:8; unsigned char v3; };
struct BFu9i_BFu8ll_Ui { unsigned int v1:9; unsigned long long v2:8; unsigned int v3; };
struct BFu9i_BFu8ll_Ul { unsigned int v1:9; unsigned long long v2:8; unsigned long long v3; };
struct BFu9i_BFu8ll_Us { unsigned int v1:9; unsigned long long v2:8; unsigned short v3; };
struct BFu9i_BFu8ll_Vp { unsigned int v1:9; unsigned long long v2:8; void * v3; };
struct BFu9i_BFu8s { unsigned int v1:9; unsigned short v2:8; };
struct BFu9i_BFu8s_BFu15i { unsigned int v1:9; unsigned short v2:8; unsigned int v3:15; };
struct BFu9i_BFu8s_BFu15ll { unsigned int v1:9; unsigned short v2:8; unsigned long long v3:15; };
struct BFu9i_BFu8s_BFu15s { unsigned int v1:9; unsigned short v2:8; unsigned short v3:15; };
struct BFu9i_BFu8s_BFu16i { unsigned int v1:9; unsigned short v2:8; unsigned int v3:16; };
struct BFu9i_BFu8s_BFu16ll { unsigned int v1:9; unsigned short v2:8; unsigned long long v3:16; };
struct BFu9i_BFu8s_BFu16s { unsigned int v1:9; unsigned short v2:8; unsigned short v3:16; };
struct BFu9i_BFu8s_BFu17i { unsigned int v1:9; unsigned short v2:8; unsigned int v3:17; };
struct BFu9i_BFu8s_BFu17ll { unsigned int v1:9; unsigned short v2:8; unsigned long long v3:17; };
struct BFu9i_BFu8s_BFu1c { unsigned int v1:9; unsigned short v2:8; unsigned char v3:1; };
struct BFu9i_BFu8s_BFu1i { unsigned int v1:9; unsigned short v2:8; unsigned int v3:1; };
struct BFu9i_BFu8s_BFu1ll { unsigned int v1:9; unsigned short v2:8; unsigned long long v3:1; };
struct BFu9i_BFu8s_BFu1s { unsigned int v1:9; unsigned short v2:8; unsigned short v3:1; };
struct BFu9i_BFu8s_BFu31i { unsigned int v1:9; unsigned short v2:8; unsigned int v3:31; };
struct BFu9i_BFu8s_BFu31ll { unsigned int v1:9; unsigned short v2:8; unsigned long long v3:31; };
struct BFu9i_BFu8s_BFu32i { unsigned int v1:9; unsigned short v2:8; unsigned int v3:32; };
struct BFu9i_BFu8s_BFu32ll { unsigned int v1:9; unsigned short v2:8; unsigned long long v3:32; };
struct BFu9i_BFu8s_BFu33 { unsigned int v1:9; unsigned short v2:8; unsigned long long v3:33; };
struct BFu9i_BFu8s_BFu7c { unsigned int v1:9; unsigned short v2:8; unsigned char v3:7; };
struct BFu9i_BFu8s_BFu7i { unsigned int v1:9; unsigned short v2:8; unsigned int v3:7; };
struct BFu9i_BFu8s_BFu7ll { unsigned int v1:9; unsigned short v2:8; unsigned long long v3:7; };
struct BFu9i_BFu8s_BFu7s { unsigned int v1:9; unsigned short v2:8; unsigned short v3:7; };
struct BFu9i_BFu8s_BFu8c { unsigned int v1:9; unsigned short v2:8; unsigned char v3:8; };
struct BFu9i_BFu8s_BFu8i { unsigned int v1:9; unsigned short v2:8; unsigned int v3:8; };
struct BFu9i_BFu8s_BFu8ll { unsigned int v1:9; unsigned short v2:8; unsigned long long v3:8; };
struct BFu9i_BFu8s_BFu8s { unsigned int v1:9; unsigned short v2:8; unsigned short v3:8; };
struct BFu9i_BFu8s_BFu9i { unsigned int v1:9; unsigned short v2:8; unsigned int v3:9; };
struct BFu9i_BFu8s_BFu9ll { unsigned int v1:9; unsigned short v2:8; unsigned long long v3:9; };
struct BFu9i_BFu8s_BFu9s { unsigned int v1:9; unsigned short v2:8; unsigned short v3:9; };
struct BFu9i_BFu8s_C { unsigned int v1:9; unsigned short v2:8; char v3; };
struct BFu9i_BFu8s_D { unsigned int v1:9; unsigned short v2:8; double v3; };
struct BFu9i_BFu8s_F { unsigned int v1:9; unsigned short v2:8; float v3; };
struct BFu9i_BFu8s_I { unsigned int v1:9; unsigned short v2:8; int v3; };
struct BFu9i_BFu8s_Ip { unsigned int v1:9; unsigned short v2:8; int * v3; };
struct BFu9i_BFu8s_L { unsigned int v1:9; unsigned short v2:8; long long v3; };
struct BFu9i_BFu8s_S { unsigned int v1:9; unsigned short v2:8; short v3; };
struct BFu9i_BFu8s_Uc { unsigned int v1:9; unsigned short v2:8; unsigned char v3; };
struct BFu9i_BFu8s_Ui { unsigned int v1:9; unsigned short v2:8; unsigned int v3; };
struct BFu9i_BFu8s_Ul { unsigned int v1:9; unsigned short v2:8; unsigned long long v3; };
struct BFu9i_BFu8s_Us { unsigned int v1:9; unsigned short v2:8; unsigned short v3; };
struct BFu9i_BFu8s_Vp { unsigned int v1:9; unsigned short v2:8; void * v3; };
struct BFu9i_BFu9i { unsigned int v1:9; unsigned int v2:9; };
struct BFu9i_BFu9i_BFs9i { unsigned int v1:9; unsigned int v2:9; signed int v3:9; };
struct BFu9i_BFu9i_BFs9i_BFs9i { unsigned int v1:9; unsigned int v2:9; signed int v3:9; signed int v4:9; };
struct BFu9i_BFu9i_BFs9i_BFs9ll { unsigned int v1:9; unsigned int v2:9; signed int v3:9; signed long long v4:9; };
struct BFu9i_BFu9i_BFs9i_BFs9s { unsigned int v1:9; unsigned int v2:9; signed int v3:9; signed short v4:9; };
struct BFu9i_BFu9i_BFs9i_BFu9i { unsigned int v1:9; unsigned int v2:9; signed int v3:9; unsigned int v4:9; };
struct BFu9i_BFu9i_BFs9i_BFu9ll { unsigned int v1:9; unsigned int v2:9; signed int v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9i_BFs9i_BFu9s { unsigned int v1:9; unsigned int v2:9; signed int v3:9; unsigned short v4:9; };
struct BFu9i_BFu9i_BFs9ll { unsigned int v1:9; unsigned int v2:9; signed long long v3:9; };
struct BFu9i_BFu9i_BFs9ll_BFs9i { unsigned int v1:9; unsigned int v2:9; signed long long v3:9; signed int v4:9; };
struct BFu9i_BFu9i_BFs9ll_BFs9ll { unsigned int v1:9; unsigned int v2:9; signed long long v3:9; signed long long v4:9; };
struct BFu9i_BFu9i_BFs9ll_BFs9s { unsigned int v1:9; unsigned int v2:9; signed long long v3:9; signed short v4:9; };
struct BFu9i_BFu9i_BFs9ll_BFu9i { unsigned int v1:9; unsigned int v2:9; signed long long v3:9; unsigned int v4:9; };
struct BFu9i_BFu9i_BFs9ll_BFu9ll { unsigned int v1:9; unsigned int v2:9; signed long long v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9i_BFs9ll_BFu9s { unsigned int v1:9; unsigned int v2:9; signed long long v3:9; unsigned short v4:9; };
struct BFu9i_BFu9i_BFs9s { unsigned int v1:9; unsigned int v2:9; signed short v3:9; };
struct BFu9i_BFu9i_BFs9s_BFs9i { unsigned int v1:9; unsigned int v2:9; signed short v3:9; signed int v4:9; };
struct BFu9i_BFu9i_BFs9s_BFs9ll { unsigned int v1:9; unsigned int v2:9; signed short v3:9; signed long long v4:9; };
struct BFu9i_BFu9i_BFs9s_BFs9s { unsigned int v1:9; unsigned int v2:9; signed short v3:9; signed short v4:9; };
struct BFu9i_BFu9i_BFs9s_BFu9i { unsigned int v1:9; unsigned int v2:9; signed short v3:9; unsigned int v4:9; };
struct BFu9i_BFu9i_BFs9s_BFu9ll { unsigned int v1:9; unsigned int v2:9; signed short v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9i_BFs9s_BFu9s { unsigned int v1:9; unsigned int v2:9; signed short v3:9; unsigned short v4:9; };
struct BFu9i_BFu9i_BFu15i { unsigned int v1:9; unsigned int v2:9; unsigned int v3:15; };
struct BFu9i_BFu9i_BFu15ll { unsigned int v1:9; unsigned int v2:9; unsigned long long v3:15; };
struct BFu9i_BFu9i_BFu15s { unsigned int v1:9; unsigned int v2:9; unsigned short v3:15; };
struct BFu9i_BFu9i_BFu16i { unsigned int v1:9; unsigned int v2:9; unsigned int v3:16; };
struct BFu9i_BFu9i_BFu16ll { unsigned int v1:9; unsigned int v2:9; unsigned long long v3:16; };
struct BFu9i_BFu9i_BFu16s { unsigned int v1:9; unsigned int v2:9; unsigned short v3:16; };
struct BFu9i_BFu9i_BFu17i { unsigned int v1:9; unsigned int v2:9; unsigned int v3:17; };
struct BFu9i_BFu9i_BFu17ll { unsigned int v1:9; unsigned int v2:9; unsigned long long v3:17; };
struct BFu9i_BFu9i_BFu1c { unsigned int v1:9; unsigned int v2:9; unsigned char v3:1; };
struct BFu9i_BFu9i_BFu1i { unsigned int v1:9; unsigned int v2:9; unsigned int v3:1; };
struct BFu9i_BFu9i_BFu1ll { unsigned int v1:9; unsigned int v2:9; unsigned long long v3:1; };
struct BFu9i_BFu9i_BFu1s { unsigned int v1:9; unsigned int v2:9; unsigned short v3:1; };
struct BFu9i_BFu9i_BFu31i { unsigned int v1:9; unsigned int v2:9; unsigned int v3:31; };
struct BFu9i_BFu9i_BFu31ll { unsigned int v1:9; unsigned int v2:9; unsigned long long v3:31; };
struct BFu9i_BFu9i_BFu32i { unsigned int v1:9; unsigned int v2:9; unsigned int v3:32; };
struct BFu9i_BFu9i_BFu32ll { unsigned int v1:9; unsigned int v2:9; unsigned long long v3:32; };
struct BFu9i_BFu9i_BFu33 { unsigned int v1:9; unsigned int v2:9; unsigned long long v3:33; };
struct BFu9i_BFu9i_BFu7c { unsigned int v1:9; unsigned int v2:9; unsigned char v3:7; };
struct BFu9i_BFu9i_BFu7i { unsigned int v1:9; unsigned int v2:9; unsigned int v3:7; };
struct BFu9i_BFu9i_BFu7ll { unsigned int v1:9; unsigned int v2:9; unsigned long long v3:7; };
struct BFu9i_BFu9i_BFu7s { unsigned int v1:9; unsigned int v2:9; unsigned short v3:7; };
struct BFu9i_BFu9i_BFu8c { unsigned int v1:9; unsigned int v2:9; unsigned char v3:8; };
struct BFu9i_BFu9i_BFu8i { unsigned int v1:9; unsigned int v2:9; unsigned int v3:8; };
struct BFu9i_BFu9i_BFu8ll { unsigned int v1:9; unsigned int v2:9; unsigned long long v3:8; };
struct BFu9i_BFu9i_BFu8s { unsigned int v1:9; unsigned int v2:9; unsigned short v3:8; };
struct BFu9i_BFu9i_BFu9i { unsigned int v1:9; unsigned int v2:9; unsigned int v3:9; };
struct BFu9i_BFu9i_BFu9i_BFs9i { unsigned int v1:9; unsigned int v2:9; unsigned int v3:9; signed int v4:9; };
struct BFu9i_BFu9i_BFu9i_BFs9ll { unsigned int v1:9; unsigned int v2:9; unsigned int v3:9; signed long long v4:9; };
struct BFu9i_BFu9i_BFu9i_BFs9s { unsigned int v1:9; unsigned int v2:9; unsigned int v3:9; signed short v4:9; };
struct BFu9i_BFu9i_BFu9i_BFu9i { unsigned int v1:9; unsigned int v2:9; unsigned int v3:9; unsigned int v4:9; };
struct BFu9i_BFu9i_BFu9i_BFu9ll { unsigned int v1:9; unsigned int v2:9; unsigned int v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9i_BFu9i_BFu9s { unsigned int v1:9; unsigned int v2:9; unsigned int v3:9; unsigned short v4:9; };
struct BFu9i_BFu9i_BFu9ll { unsigned int v1:9; unsigned int v2:9; unsigned long long v3:9; };
struct BFu9i_BFu9i_BFu9ll_BFs9i { unsigned int v1:9; unsigned int v2:9; unsigned long long v3:9; signed int v4:9; };
struct BFu9i_BFu9i_BFu9ll_BFs9ll { unsigned int v1:9; unsigned int v2:9; unsigned long long v3:9; signed long long v4:9; };
struct BFu9i_BFu9i_BFu9ll_BFs9s { unsigned int v1:9; unsigned int v2:9; unsigned long long v3:9; signed short v4:9; };
struct BFu9i_BFu9i_BFu9ll_BFu9i { unsigned int v1:9; unsigned int v2:9; unsigned long long v3:9; unsigned int v4:9; };
struct BFu9i_BFu9i_BFu9ll_BFu9ll { unsigned int v1:9; unsigned int v2:9; unsigned long long v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9i_BFu9ll_BFu9s { unsigned int v1:9; unsigned int v2:9; unsigned long long v3:9; unsigned short v4:9; };
struct BFu9i_BFu9i_BFu9s { unsigned int v1:9; unsigned int v2:9; unsigned short v3:9; };
struct BFu9i_BFu9i_BFu9s_BFs9i { unsigned int v1:9; unsigned int v2:9; unsigned short v3:9; signed int v4:9; };
struct BFu9i_BFu9i_BFu9s_BFs9ll { unsigned int v1:9; unsigned int v2:9; unsigned short v3:9; signed long long v4:9; };
struct BFu9i_BFu9i_BFu9s_BFs9s { unsigned int v1:9; unsigned int v2:9; unsigned short v3:9; signed short v4:9; };
struct BFu9i_BFu9i_BFu9s_BFu9i { unsigned int v1:9; unsigned int v2:9; unsigned short v3:9; unsigned int v4:9; };
struct BFu9i_BFu9i_BFu9s_BFu9ll { unsigned int v1:9; unsigned int v2:9; unsigned short v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9i_BFu9s_BFu9s { unsigned int v1:9; unsigned int v2:9; unsigned short v3:9; unsigned short v4:9; };
struct BFu9i_BFu9i_C { unsigned int v1:9; unsigned int v2:9; char v3; };
struct BFu9i_BFu9i_D { unsigned int v1:9; unsigned int v2:9; double v3; };
struct BFu9i_BFu9i_F { unsigned int v1:9; unsigned int v2:9; float v3; };
struct BFu9i_BFu9i_I { unsigned int v1:9; unsigned int v2:9; int v3; };
struct BFu9i_BFu9i_Ip { unsigned int v1:9; unsigned int v2:9; int * v3; };
struct BFu9i_BFu9i_L { unsigned int v1:9; unsigned int v2:9; long long v3; };
struct BFu9i_BFu9i_S { unsigned int v1:9; unsigned int v2:9; short v3; };
struct BFu9i_BFu9i_Uc { unsigned int v1:9; unsigned int v2:9; unsigned char v3; };
struct BFu9i_BFu9i_Ui { unsigned int v1:9; unsigned int v2:9; unsigned int v3; };
struct BFu9i_BFu9i_Ul { unsigned int v1:9; unsigned int v2:9; unsigned long long v3; };
struct BFu9i_BFu9i_Us { unsigned int v1:9; unsigned int v2:9; unsigned short v3; };
struct BFu9i_BFu9i_Vp { unsigned int v1:9; unsigned int v2:9; void * v3; };
struct BFu9i_BFu9ll { unsigned int v1:9; unsigned long long v2:9; };
struct BFu9i_BFu9ll_BFs9i { unsigned int v1:9; unsigned long long v2:9; signed int v3:9; };
struct BFu9i_BFu9ll_BFs9i_BFs9i { unsigned int v1:9; unsigned long long v2:9; signed int v3:9; signed int v4:9; };
struct BFu9i_BFu9ll_BFs9i_BFs9ll { unsigned int v1:9; unsigned long long v2:9; signed int v3:9; signed long long v4:9; };
struct BFu9i_BFu9ll_BFs9i_BFs9s { unsigned int v1:9; unsigned long long v2:9; signed int v3:9; signed short v4:9; };
struct BFu9i_BFu9ll_BFs9i_BFu9i { unsigned int v1:9; unsigned long long v2:9; signed int v3:9; unsigned int v4:9; };
struct BFu9i_BFu9ll_BFs9i_BFu9ll { unsigned int v1:9; unsigned long long v2:9; signed int v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9ll_BFs9i_BFu9s { unsigned int v1:9; unsigned long long v2:9; signed int v3:9; unsigned short v4:9; };
struct BFu9i_BFu9ll_BFs9ll { unsigned int v1:9; unsigned long long v2:9; signed long long v3:9; };
struct BFu9i_BFu9ll_BFs9ll_BFs9i { unsigned int v1:9; unsigned long long v2:9; signed long long v3:9; signed int v4:9; };
struct BFu9i_BFu9ll_BFs9ll_BFs9ll { unsigned int v1:9; unsigned long long v2:9; signed long long v3:9; signed long long v4:9; };
struct BFu9i_BFu9ll_BFs9ll_BFs9s { unsigned int v1:9; unsigned long long v2:9; signed long long v3:9; signed short v4:9; };
struct BFu9i_BFu9ll_BFs9ll_BFu9i { unsigned int v1:9; unsigned long long v2:9; signed long long v3:9; unsigned int v4:9; };
struct BFu9i_BFu9ll_BFs9ll_BFu9ll { unsigned int v1:9; unsigned long long v2:9; signed long long v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9ll_BFs9ll_BFu9s { unsigned int v1:9; unsigned long long v2:9; signed long long v3:9; unsigned short v4:9; };
struct BFu9i_BFu9ll_BFs9s { unsigned int v1:9; unsigned long long v2:9; signed short v3:9; };
struct BFu9i_BFu9ll_BFs9s_BFs9i { unsigned int v1:9; unsigned long long v2:9; signed short v3:9; signed int v4:9; };
struct BFu9i_BFu9ll_BFs9s_BFs9ll { unsigned int v1:9; unsigned long long v2:9; signed short v3:9; signed long long v4:9; };
struct BFu9i_BFu9ll_BFs9s_BFs9s { unsigned int v1:9; unsigned long long v2:9; signed short v3:9; signed short v4:9; };
struct BFu9i_BFu9ll_BFs9s_BFu9i { unsigned int v1:9; unsigned long long v2:9; signed short v3:9; unsigned int v4:9; };
struct BFu9i_BFu9ll_BFs9s_BFu9ll { unsigned int v1:9; unsigned long long v2:9; signed short v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9ll_BFs9s_BFu9s { unsigned int v1:9; unsigned long long v2:9; signed short v3:9; unsigned short v4:9; };
struct BFu9i_BFu9ll_BFu15i { unsigned int v1:9; unsigned long long v2:9; unsigned int v3:15; };
struct BFu9i_BFu9ll_BFu15ll { unsigned int v1:9; unsigned long long v2:9; unsigned long long v3:15; };
struct BFu9i_BFu9ll_BFu15s { unsigned int v1:9; unsigned long long v2:9; unsigned short v3:15; };
struct BFu9i_BFu9ll_BFu16i { unsigned int v1:9; unsigned long long v2:9; unsigned int v3:16; };
struct BFu9i_BFu9ll_BFu16ll { unsigned int v1:9; unsigned long long v2:9; unsigned long long v3:16; };
struct BFu9i_BFu9ll_BFu16s { unsigned int v1:9; unsigned long long v2:9; unsigned short v3:16; };
struct BFu9i_BFu9ll_BFu17i { unsigned int v1:9; unsigned long long v2:9; unsigned int v3:17; };
struct BFu9i_BFu9ll_BFu17ll { unsigned int v1:9; unsigned long long v2:9; unsigned long long v3:17; };
struct BFu9i_BFu9ll_BFu1c { unsigned int v1:9; unsigned long long v2:9; unsigned char v3:1; };
struct BFu9i_BFu9ll_BFu1i { unsigned int v1:9; unsigned long long v2:9; unsigned int v3:1; };
struct BFu9i_BFu9ll_BFu1ll { unsigned int v1:9; unsigned long long v2:9; unsigned long long v3:1; };
struct BFu9i_BFu9ll_BFu1s { unsigned int v1:9; unsigned long long v2:9; unsigned short v3:1; };
struct BFu9i_BFu9ll_BFu31i { unsigned int v1:9; unsigned long long v2:9; unsigned int v3:31; };
struct BFu9i_BFu9ll_BFu31ll { unsigned int v1:9; unsigned long long v2:9; unsigned long long v3:31; };
struct BFu9i_BFu9ll_BFu32i { unsigned int v1:9; unsigned long long v2:9; unsigned int v3:32; };
struct BFu9i_BFu9ll_BFu32ll { unsigned int v1:9; unsigned long long v2:9; unsigned long long v3:32; };
struct BFu9i_BFu9ll_BFu33 { unsigned int v1:9; unsigned long long v2:9; unsigned long long v3:33; };
struct BFu9i_BFu9ll_BFu7c { unsigned int v1:9; unsigned long long v2:9; unsigned char v3:7; };
struct BFu9i_BFu9ll_BFu7i { unsigned int v1:9; unsigned long long v2:9; unsigned int v3:7; };
struct BFu9i_BFu9ll_BFu7ll { unsigned int v1:9; unsigned long long v2:9; unsigned long long v3:7; };
struct BFu9i_BFu9ll_BFu7s { unsigned int v1:9; unsigned long long v2:9; unsigned short v3:7; };
struct BFu9i_BFu9ll_BFu8c { unsigned int v1:9; unsigned long long v2:9; unsigned char v3:8; };
struct BFu9i_BFu9ll_BFu8i { unsigned int v1:9; unsigned long long v2:9; unsigned int v3:8; };
struct BFu9i_BFu9ll_BFu8ll { unsigned int v1:9; unsigned long long v2:9; unsigned long long v3:8; };
struct BFu9i_BFu9ll_BFu8s { unsigned int v1:9; unsigned long long v2:9; unsigned short v3:8; };
struct BFu9i_BFu9ll_BFu9i { unsigned int v1:9; unsigned long long v2:9; unsigned int v3:9; };
struct BFu9i_BFu9ll_BFu9i_BFs9i { unsigned int v1:9; unsigned long long v2:9; unsigned int v3:9; signed int v4:9; };
struct BFu9i_BFu9ll_BFu9i_BFs9ll { unsigned int v1:9; unsigned long long v2:9; unsigned int v3:9; signed long long v4:9; };
struct BFu9i_BFu9ll_BFu9i_BFs9s { unsigned int v1:9; unsigned long long v2:9; unsigned int v3:9; signed short v4:9; };
struct BFu9i_BFu9ll_BFu9i_BFu9i { unsigned int v1:9; unsigned long long v2:9; unsigned int v3:9; unsigned int v4:9; };
struct BFu9i_BFu9ll_BFu9i_BFu9ll { unsigned int v1:9; unsigned long long v2:9; unsigned int v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9ll_BFu9i_BFu9s { unsigned int v1:9; unsigned long long v2:9; unsigned int v3:9; unsigned short v4:9; };
struct BFu9i_BFu9ll_BFu9ll { unsigned int v1:9; unsigned long long v2:9; unsigned long long v3:9; };
struct BFu9i_BFu9ll_BFu9ll_BFs9i { unsigned int v1:9; unsigned long long v2:9; unsigned long long v3:9; signed int v4:9; };
struct BFu9i_BFu9ll_BFu9ll_BFs9ll { unsigned int v1:9; unsigned long long v2:9; unsigned long long v3:9; signed long long v4:9; };
struct BFu9i_BFu9ll_BFu9ll_BFs9s { unsigned int v1:9; unsigned long long v2:9; unsigned long long v3:9; signed short v4:9; };
struct BFu9i_BFu9ll_BFu9ll_BFu9i { unsigned int v1:9; unsigned long long v2:9; unsigned long long v3:9; unsigned int v4:9; };
struct BFu9i_BFu9ll_BFu9ll_BFu9ll { unsigned int v1:9; unsigned long long v2:9; unsigned long long v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9ll_BFu9ll_BFu9s { unsigned int v1:9; unsigned long long v2:9; unsigned long long v3:9; unsigned short v4:9; };
struct BFu9i_BFu9ll_BFu9s { unsigned int v1:9; unsigned long long v2:9; unsigned short v3:9; };
struct BFu9i_BFu9ll_BFu9s_BFs9i { unsigned int v1:9; unsigned long long v2:9; unsigned short v3:9; signed int v4:9; };
struct BFu9i_BFu9ll_BFu9s_BFs9ll { unsigned int v1:9; unsigned long long v2:9; unsigned short v3:9; signed long long v4:9; };
struct BFu9i_BFu9ll_BFu9s_BFs9s { unsigned int v1:9; unsigned long long v2:9; unsigned short v3:9; signed short v4:9; };
struct BFu9i_BFu9ll_BFu9s_BFu9i { unsigned int v1:9; unsigned long long v2:9; unsigned short v3:9; unsigned int v4:9; };
struct BFu9i_BFu9ll_BFu9s_BFu9ll { unsigned int v1:9; unsigned long long v2:9; unsigned short v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9ll_BFu9s_BFu9s { unsigned int v1:9; unsigned long long v2:9; unsigned short v3:9; unsigned short v4:9; };
struct BFu9i_BFu9ll_C { unsigned int v1:9; unsigned long long v2:9; char v3; };
struct BFu9i_BFu9ll_D { unsigned int v1:9; unsigned long long v2:9; double v3; };
struct BFu9i_BFu9ll_F { unsigned int v1:9; unsigned long long v2:9; float v3; };
struct BFu9i_BFu9ll_I { unsigned int v1:9; unsigned long long v2:9; int v3; };
struct BFu9i_BFu9ll_Ip { unsigned int v1:9; unsigned long long v2:9; int * v3; };
struct BFu9i_BFu9ll_L { unsigned int v1:9; unsigned long long v2:9; long long v3; };
struct BFu9i_BFu9ll_S { unsigned int v1:9; unsigned long long v2:9; short v3; };
struct BFu9i_BFu9ll_Uc { unsigned int v1:9; unsigned long long v2:9; unsigned char v3; };
struct BFu9i_BFu9ll_Ui { unsigned int v1:9; unsigned long long v2:9; unsigned int v3; };
struct BFu9i_BFu9ll_Ul { unsigned int v1:9; unsigned long long v2:9; unsigned long long v3; };
struct BFu9i_BFu9ll_Us { unsigned int v1:9; unsigned long long v2:9; unsigned short v3; };
struct BFu9i_BFu9ll_Vp { unsigned int v1:9; unsigned long long v2:9; void * v3; };
struct BFu9i_BFu9s { unsigned int v1:9; unsigned short v2:9; };
struct BFu9i_BFu9s_BFs9i { unsigned int v1:9; unsigned short v2:9; signed int v3:9; };
struct BFu9i_BFu9s_BFs9i_BFs9i { unsigned int v1:9; unsigned short v2:9; signed int v3:9; signed int v4:9; };
struct BFu9i_BFu9s_BFs9i_BFs9ll { unsigned int v1:9; unsigned short v2:9; signed int v3:9; signed long long v4:9; };
struct BFu9i_BFu9s_BFs9i_BFs9s { unsigned int v1:9; unsigned short v2:9; signed int v3:9; signed short v4:9; };
struct BFu9i_BFu9s_BFs9i_BFu9i { unsigned int v1:9; unsigned short v2:9; signed int v3:9; unsigned int v4:9; };
struct BFu9i_BFu9s_BFs9i_BFu9ll { unsigned int v1:9; unsigned short v2:9; signed int v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9s_BFs9i_BFu9s { unsigned int v1:9; unsigned short v2:9; signed int v3:9; unsigned short v4:9; };
struct BFu9i_BFu9s_BFs9ll { unsigned int v1:9; unsigned short v2:9; signed long long v3:9; };
struct BFu9i_BFu9s_BFs9ll_BFs9i { unsigned int v1:9; unsigned short v2:9; signed long long v3:9; signed int v4:9; };
struct BFu9i_BFu9s_BFs9ll_BFs9ll { unsigned int v1:9; unsigned short v2:9; signed long long v3:9; signed long long v4:9; };
struct BFu9i_BFu9s_BFs9ll_BFs9s { unsigned int v1:9; unsigned short v2:9; signed long long v3:9; signed short v4:9; };
struct BFu9i_BFu9s_BFs9ll_BFu9i { unsigned int v1:9; unsigned short v2:9; signed long long v3:9; unsigned int v4:9; };
struct BFu9i_BFu9s_BFs9ll_BFu9ll { unsigned int v1:9; unsigned short v2:9; signed long long v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9s_BFs9ll_BFu9s { unsigned int v1:9; unsigned short v2:9; signed long long v3:9; unsigned short v4:9; };
struct BFu9i_BFu9s_BFs9s { unsigned int v1:9; unsigned short v2:9; signed short v3:9; };
struct BFu9i_BFu9s_BFs9s_BFs9i { unsigned int v1:9; unsigned short v2:9; signed short v3:9; signed int v4:9; };
struct BFu9i_BFu9s_BFs9s_BFs9ll { unsigned int v1:9; unsigned short v2:9; signed short v3:9; signed long long v4:9; };
struct BFu9i_BFu9s_BFs9s_BFs9s { unsigned int v1:9; unsigned short v2:9; signed short v3:9; signed short v4:9; };
struct BFu9i_BFu9s_BFs9s_BFu9i { unsigned int v1:9; unsigned short v2:9; signed short v3:9; unsigned int v4:9; };
struct BFu9i_BFu9s_BFs9s_BFu9ll { unsigned int v1:9; unsigned short v2:9; signed short v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9s_BFs9s_BFu9s { unsigned int v1:9; unsigned short v2:9; signed short v3:9; unsigned short v4:9; };
struct BFu9i_BFu9s_BFu15i { unsigned int v1:9; unsigned short v2:9; unsigned int v3:15; };
struct BFu9i_BFu9s_BFu15ll { unsigned int v1:9; unsigned short v2:9; unsigned long long v3:15; };
struct BFu9i_BFu9s_BFu15s { unsigned int v1:9; unsigned short v2:9; unsigned short v3:15; };
struct BFu9i_BFu9s_BFu16i { unsigned int v1:9; unsigned short v2:9; unsigned int v3:16; };
struct BFu9i_BFu9s_BFu16ll { unsigned int v1:9; unsigned short v2:9; unsigned long long v3:16; };
struct BFu9i_BFu9s_BFu16s { unsigned int v1:9; unsigned short v2:9; unsigned short v3:16; };
struct BFu9i_BFu9s_BFu17i { unsigned int v1:9; unsigned short v2:9; unsigned int v3:17; };
struct BFu9i_BFu9s_BFu17ll { unsigned int v1:9; unsigned short v2:9; unsigned long long v3:17; };
struct BFu9i_BFu9s_BFu1c { unsigned int v1:9; unsigned short v2:9; unsigned char v3:1; };
struct BFu9i_BFu9s_BFu1i { unsigned int v1:9; unsigned short v2:9; unsigned int v3:1; };
struct BFu9i_BFu9s_BFu1ll { unsigned int v1:9; unsigned short v2:9; unsigned long long v3:1; };
struct BFu9i_BFu9s_BFu1s { unsigned int v1:9; unsigned short v2:9; unsigned short v3:1; };
struct BFu9i_BFu9s_BFu31i { unsigned int v1:9; unsigned short v2:9; unsigned int v3:31; };
struct BFu9i_BFu9s_BFu31ll { unsigned int v1:9; unsigned short v2:9; unsigned long long v3:31; };
struct BFu9i_BFu9s_BFu32i { unsigned int v1:9; unsigned short v2:9; unsigned int v3:32; };
struct BFu9i_BFu9s_BFu32ll { unsigned int v1:9; unsigned short v2:9; unsigned long long v3:32; };
struct BFu9i_BFu9s_BFu33 { unsigned int v1:9; unsigned short v2:9; unsigned long long v3:33; };
struct BFu9i_BFu9s_BFu7c { unsigned int v1:9; unsigned short v2:9; unsigned char v3:7; };
struct BFu9i_BFu9s_BFu7i { unsigned int v1:9; unsigned short v2:9; unsigned int v3:7; };
struct BFu9i_BFu9s_BFu7ll { unsigned int v1:9; unsigned short v2:9; unsigned long long v3:7; };
struct BFu9i_BFu9s_BFu7s { unsigned int v1:9; unsigned short v2:9; unsigned short v3:7; };
struct BFu9i_BFu9s_BFu8c { unsigned int v1:9; unsigned short v2:9; unsigned char v3:8; };
struct BFu9i_BFu9s_BFu8i { unsigned int v1:9; unsigned short v2:9; unsigned int v3:8; };
struct BFu9i_BFu9s_BFu8ll { unsigned int v1:9; unsigned short v2:9; unsigned long long v3:8; };
struct BFu9i_BFu9s_BFu8s { unsigned int v1:9; unsigned short v2:9; unsigned short v3:8; };
struct BFu9i_BFu9s_BFu9i { unsigned int v1:9; unsigned short v2:9; unsigned int v3:9; };
struct BFu9i_BFu9s_BFu9i_BFs9i { unsigned int v1:9; unsigned short v2:9; unsigned int v3:9; signed int v4:9; };
struct BFu9i_BFu9s_BFu9i_BFs9ll { unsigned int v1:9; unsigned short v2:9; unsigned int v3:9; signed long long v4:9; };
struct BFu9i_BFu9s_BFu9i_BFs9s { unsigned int v1:9; unsigned short v2:9; unsigned int v3:9; signed short v4:9; };
struct BFu9i_BFu9s_BFu9i_BFu9i { unsigned int v1:9; unsigned short v2:9; unsigned int v3:9; unsigned int v4:9; };
struct BFu9i_BFu9s_BFu9i_BFu9ll { unsigned int v1:9; unsigned short v2:9; unsigned int v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9s_BFu9i_BFu9s { unsigned int v1:9; unsigned short v2:9; unsigned int v3:9; unsigned short v4:9; };
struct BFu9i_BFu9s_BFu9ll { unsigned int v1:9; unsigned short v2:9; unsigned long long v3:9; };
struct BFu9i_BFu9s_BFu9ll_BFs9i { unsigned int v1:9; unsigned short v2:9; unsigned long long v3:9; signed int v4:9; };
struct BFu9i_BFu9s_BFu9ll_BFs9ll { unsigned int v1:9; unsigned short v2:9; unsigned long long v3:9; signed long long v4:9; };
struct BFu9i_BFu9s_BFu9ll_BFs9s { unsigned int v1:9; unsigned short v2:9; unsigned long long v3:9; signed short v4:9; };
struct BFu9i_BFu9s_BFu9ll_BFu9i { unsigned int v1:9; unsigned short v2:9; unsigned long long v3:9; unsigned int v4:9; };
struct BFu9i_BFu9s_BFu9ll_BFu9ll { unsigned int v1:9; unsigned short v2:9; unsigned long long v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9s_BFu9ll_BFu9s { unsigned int v1:9; unsigned short v2:9; unsigned long long v3:9; unsigned short v4:9; };
struct BFu9i_BFu9s_BFu9s { unsigned int v1:9; unsigned short v2:9; unsigned short v3:9; };
struct BFu9i_BFu9s_BFu9s_BFs9i { unsigned int v1:9; unsigned short v2:9; unsigned short v3:9; signed int v4:9; };
struct BFu9i_BFu9s_BFu9s_BFs9ll { unsigned int v1:9; unsigned short v2:9; unsigned short v3:9; signed long long v4:9; };
struct BFu9i_BFu9s_BFu9s_BFs9s { unsigned int v1:9; unsigned short v2:9; unsigned short v3:9; signed short v4:9; };
struct BFu9i_BFu9s_BFu9s_BFu9i { unsigned int v1:9; unsigned short v2:9; unsigned short v3:9; unsigned int v4:9; };
struct BFu9i_BFu9s_BFu9s_BFu9ll { unsigned int v1:9; unsigned short v2:9; unsigned short v3:9; unsigned long long v4:9; };
struct BFu9i_BFu9s_BFu9s_BFu9s { unsigned int v1:9; unsigned short v2:9; unsigned short v3:9; unsigned short v4:9; };
struct BFu9i_BFu9s_C { unsigned int v1:9; unsigned short v2:9; char v3; };
struct BFu9i_BFu9s_D { unsigned int v1:9; unsigned short v2:9; double v3; };
struct BFu9i_BFu9s_F { unsigned int v1:9; unsigned short v2:9; float v3; };
struct BFu9i_BFu9s_I { unsigned int v1:9; unsigned short v2:9; int v3; };
struct BFu9i_BFu9s_Ip { unsigned int v1:9; unsigned short v2:9; int * v3; };
struct BFu9i_BFu9s_L { unsigned int v1:9; unsigned short v2:9; long long v3; };
struct BFu9i_BFu9s_S { unsigned int v1:9; unsigned short v2:9; short v3; };
struct BFu9i_BFu9s_Uc { unsigned int v1:9; unsigned short v2:9; unsigned char v3; };
struct BFu9i_BFu9s_Ui { unsigned int v1:9; unsigned short v2:9; unsigned int v3; };
struct BFu9i_BFu9s_Ul { unsigned int v1:9; unsigned short v2:9; unsigned long long v3; };
struct BFu9i_BFu9s_Us { unsigned int v1:9; unsigned short v2:9; unsigned short v3; };
struct BFu9i_BFu9s_Vp { unsigned int v1:9; unsigned short v2:9; void * v3; };
struct BFu9i_C { unsigned int v1:9; char v2; };
struct BFu9i_C_BFu15i { unsigned int v1:9; char v2; unsigned int v3:15; };
struct BFu9i_C_BFu15ll { unsigned int v1:9; char v2; unsigned long long v3:15; };
struct BFu9i_C_BFu15s { unsigned int v1:9; char v2; unsigned short v3:15; };
struct BFu9i_C_BFu16i { unsigned int v1:9; char v2; unsigned int v3:16; };
struct BFu9i_C_BFu16ll { unsigned int v1:9; char v2; unsigned long long v3:16; };
struct BFu9i_C_BFu16s { unsigned int v1:9; char v2; unsigned short v3:16; };
struct BFu9i_C_BFu17i { unsigned int v1:9; char v2; unsigned int v3:17; };
struct BFu9i_C_BFu17ll { unsigned int v1:9; char v2; unsigned long long v3:17; };
struct BFu9i_C_BFu1c { unsigned int v1:9; char v2; unsigned char v3:1; };
struct BFu9i_C_BFu1i { unsigned int v1:9; char v2; unsigned int v3:1; };
struct BFu9i_C_BFu1ll { unsigned int v1:9; char v2; unsigned long long v3:1; };
struct BFu9i_C_BFu1s { unsigned int v1:9; char v2; unsigned short v3:1; };
struct BFu9i_C_BFu31i { unsigned int v1:9; char v2; unsigned int v3:31; };
struct BFu9i_C_BFu31ll { unsigned int v1:9; char v2; unsigned long long v3:31; };
struct BFu9i_C_BFu32i { unsigned int v1:9; char v2; unsigned int v3:32; };
struct BFu9i_C_BFu32ll { unsigned int v1:9; char v2; unsigned long long v3:32; };
struct BFu9i_C_BFu33 { unsigned int v1:9; char v2; unsigned long long v3:33; };
struct BFu9i_C_BFu7c { unsigned int v1:9; char v2; unsigned char v3:7; };
struct BFu9i_C_BFu7i { unsigned int v1:9; char v2; unsigned int v3:7; };
struct BFu9i_C_BFu7ll { unsigned int v1:9; char v2; unsigned long long v3:7; };
struct BFu9i_C_BFu7s { unsigned int v1:9; char v2; unsigned short v3:7; };
struct BFu9i_C_BFu8c { unsigned int v1:9; char v2; unsigned char v3:8; };
struct BFu9i_C_BFu8i { unsigned int v1:9; char v2; unsigned int v3:8; };
struct BFu9i_C_BFu8ll { unsigned int v1:9; char v2; unsigned long long v3:8; };
struct BFu9i_C_BFu8s { unsigned int v1:9; char v2; unsigned short v3:8; };
struct BFu9i_C_BFu9i { unsigned int v1:9; char v2; unsigned int v3:9; };
struct BFu9i_C_BFu9ll { unsigned int v1:9; char v2; unsigned long long v3:9; };
struct BFu9i_C_BFu9s { unsigned int v1:9; char v2; unsigned short v3:9; };
struct BFu9i_C_C { unsigned int v1:9; char v2; char v3; };
struct BFu9i_C_D { unsigned int v1:9; char v2; double v3; };
struct BFu9i_C_F { unsigned int v1:9; char v2; float v3; };
struct BFu9i_C_I { unsigned int v1:9; char v2; int v3; };
struct BFu9i_C_Ip { unsigned int v1:9; char v2; int * v3; };
struct BFu9i_C_L { unsigned int v1:9; char v2; long long v3; };
struct BFu9i_C_S { unsigned int v1:9; char v2; short v3; };
struct BFu9i_C_Uc { unsigned int v1:9; char v2; unsigned char v3; };
struct BFu9i_C_Ui { unsigned int v1:9; char v2; unsigned int v3; };
struct BFu9i_C_Ul { unsigned int v1:9; char v2; unsigned long long v3; };
struct BFu9i_C_Us { unsigned int v1:9; char v2; unsigned short v3; };
struct BFu9i_C_Vp { unsigned int v1:9; char v2; void * v3; };
struct BFu9i_D { unsigned int v1:9; double v2; };
struct BFu9i_D_BFu15i { unsigned int v1:9; double v2; unsigned int v3:15; };
struct BFu9i_D_BFu15ll { unsigned int v1:9; double v2; unsigned long long v3:15; };
struct BFu9i_D_BFu15s { unsigned int v1:9; double v2; unsigned short v3:15; };
struct BFu9i_D_BFu16i { unsigned int v1:9; double v2; unsigned int v3:16; };
struct BFu9i_D_BFu16ll { unsigned int v1:9; double v2; unsigned long long v3:16; };
struct BFu9i_D_BFu16s { unsigned int v1:9; double v2; unsigned short v3:16; };
struct BFu9i_D_BFu17i { unsigned int v1:9; double v2; unsigned int v3:17; };
struct BFu9i_D_BFu17ll { unsigned int v1:9; double v2; unsigned long long v3:17; };
struct BFu9i_D_BFu1c { unsigned int v1:9; double v2; unsigned char v3:1; };
struct BFu9i_D_BFu1i { unsigned int v1:9; double v2; unsigned int v3:1; };
struct BFu9i_D_BFu1ll { unsigned int v1:9; double v2; unsigned long long v3:1; };
struct BFu9i_D_BFu1s { unsigned int v1:9; double v2; unsigned short v3:1; };
struct BFu9i_D_BFu31i { unsigned int v1:9; double v2; unsigned int v3:31; };
struct BFu9i_D_BFu31ll { unsigned int v1:9; double v2; unsigned long long v3:31; };
struct BFu9i_D_BFu32i { unsigned int v1:9; double v2; unsigned int v3:32; };
struct BFu9i_D_BFu32ll { unsigned int v1:9; double v2; unsigned long long v3:32; };
struct BFu9i_D_BFu33 { unsigned int v1:9; double v2; unsigned long long v3:33; };
struct BFu9i_D_BFu7c { unsigned int v1:9; double v2; unsigned char v3:7; };
struct BFu9i_D_BFu7i { unsigned int v1:9; double v2; unsigned int v3:7; };
struct BFu9i_D_BFu7ll { unsigned int v1:9; double v2; unsigned long long v3:7; };
struct BFu9i_D_BFu7s { unsigned int v1:9; double v2; unsigned short v3:7; };
struct BFu9i_D_BFu8c { unsigned int v1:9; double v2; unsigned char v3:8; };
struct BFu9i_D_BFu8i { unsigned int v1:9; double v2; unsigned int v3:8; };
struct BFu9i_D_BFu8ll { unsigned int v1:9; double v2; unsigned long long v3:8; };
struct BFu9i_D_BFu8s { unsigned int v1:9; double v2; unsigned short v3:8; };
struct BFu9i_D_BFu9i { unsigned int v1:9; double v2; unsigned int v3:9; };
struct BFu9i_D_BFu9ll { unsigned int v1:9; double v2; unsigned long long v3:9; };
struct BFu9i_D_BFu9s { unsigned int v1:9; double v2; unsigned short v3:9; };
struct BFu9i_D_C { unsigned int v1:9; double v2; char v3; };
struct BFu9i_D_D { unsigned int v1:9; double v2; double v3; };
struct BFu9i_D_F { unsigned int v1:9; double v2; float v3; };
struct BFu9i_D_I { unsigned int v1:9; double v2; int v3; };
struct BFu9i_D_Ip { unsigned int v1:9; double v2; int * v3; };
struct BFu9i_D_L { unsigned int v1:9; double v2; long long v3; };
struct BFu9i_D_S { unsigned int v1:9; double v2; short v3; };
struct BFu9i_D_Uc { unsigned int v1:9; double v2; unsigned char v3; };
struct BFu9i_D_Ui { unsigned int v1:9; double v2; unsigned int v3; };
struct BFu9i_D_Ul { unsigned int v1:9; double v2; unsigned long long v3; };
struct BFu9i_D_Us { unsigned int v1:9; double v2; unsigned short v3; };
struct BFu9i_D_Vp { unsigned int v1:9; double v2; void * v3; };
struct BFu9i_F { unsigned int v1:9; float v2; };
struct BFu9i_F_BFu15i { unsigned int v1:9; float v2; unsigned int v3:15; };
struct BFu9i_F_BFu15ll { unsigned int v1:9; float v2; unsigned long long v3:15; };
struct BFu9i_F_BFu15s { unsigned int v1:9; float v2; unsigned short v3:15; };
struct BFu9i_F_BFu16i { unsigned int v1:9; float v2; unsigned int v3:16; };
struct BFu9i_F_BFu16ll { unsigned int v1:9; float v2; unsigned long long v3:16; };
struct BFu9i_F_BFu16s { unsigned int v1:9; float v2; unsigned short v3:16; };
struct BFu9i_F_BFu17i { unsigned int v1:9; float v2; unsigned int v3:17; };
struct BFu9i_F_BFu17ll { unsigned int v1:9; float v2; unsigned long long v3:17; };
struct BFu9i_F_BFu1c { unsigned int v1:9; float v2; unsigned char v3:1; };
struct BFu9i_F_BFu1i { unsigned int v1:9; float v2; unsigned int v3:1; };
struct BFu9i_F_BFu1ll { unsigned int v1:9; float v2; unsigned long long v3:1; };
struct BFu9i_F_BFu1s { unsigned int v1:9; float v2; unsigned short v3:1; };
struct BFu9i_F_BFu31i { unsigned int v1:9; float v2; unsigned int v3:31; };
struct BFu9i_F_BFu31ll { unsigned int v1:9; float v2; unsigned long long v3:31; };
struct BFu9i_F_BFu32i { unsigned int v1:9; float v2; unsigned int v3:32; };
struct BFu9i_F_BFu32ll { unsigned int v1:9; float v2; unsigned long long v3:32; };
struct BFu9i_F_BFu33 { unsigned int v1:9; float v2; unsigned long long v3:33; };
struct BFu9i_F_BFu7c { unsigned int v1:9; float v2; unsigned char v3:7; };
struct BFu9i_F_BFu7i { unsigned int v1:9; float v2; unsigned int v3:7; };
struct BFu9i_F_BFu7ll { unsigned int v1:9; float v2; unsigned long long v3:7; };
struct BFu9i_F_BFu7s { unsigned int v1:9; float v2; unsigned short v3:7; };
struct BFu9i_F_BFu8c { unsigned int v1:9; float v2; unsigned char v3:8; };
struct BFu9i_F_BFu8i { unsigned int v1:9; float v2; unsigned int v3:8; };
struct BFu9i_F_BFu8ll { unsigned int v1:9; float v2; unsigned long long v3:8; };
struct BFu9i_F_BFu8s { unsigned int v1:9; float v2; unsigned short v3:8; };
struct BFu9i_F_BFu9i { unsigned int v1:9; float v2; unsigned int v3:9; };
struct BFu9i_F_BFu9ll { unsigned int v1:9; float v2; unsigned long long v3:9; };
struct BFu9i_F_BFu9s { unsigned int v1:9; float v2; unsigned short v3:9; };
struct BFu9i_F_C { unsigned int v1:9; float v2; char v3; };
struct BFu9i_F_D { unsigned int v1:9; float v2; double v3; };
struct BFu9i_F_F { unsigned int v1:9; float v2; float v3; };
struct BFu9i_F_I { unsigned int v1:9; float v2; int v3; };
struct BFu9i_F_Ip { unsigned int v1:9; float v2; int * v3; };
struct BFu9i_F_L { unsigned int v1:9; float v2; long long v3; };
struct BFu9i_F_S { unsigned int v1:9; float v2; short v3; };
struct BFu9i_F_Uc { unsigned int v1:9; float v2; unsigned char v3; };
struct BFu9i_F_Ui { unsigned int v1:9; float v2; unsigned int v3; };
struct BFu9i_F_Ul { unsigned int v1:9; float v2; unsigned long long v3; };
struct BFu9i_F_Us { unsigned int v1:9; float v2; unsigned short v3; };
struct BFu9i_F_Vp { unsigned int v1:9; float v2; void * v3; };
struct BFu9i_I { unsigned int v1:9; int v2; };
struct BFu9i_I_BFu15i { unsigned int v1:9; int v2; unsigned int v3:15; };
struct BFu9i_I_BFu15ll { unsigned int v1:9; int v2; unsigned long long v3:15; };
struct BFu9i_I_BFu15s { unsigned int v1:9; int v2; unsigned short v3:15; };
struct BFu9i_I_BFu16i { unsigned int v1:9; int v2; unsigned int v3:16; };
struct BFu9i_I_BFu16ll { unsigned int v1:9; int v2; unsigned long long v3:16; };
struct BFu9i_I_BFu16s { unsigned int v1:9; int v2; unsigned short v3:16; };
struct BFu9i_I_BFu17i { unsigned int v1:9; int v2; unsigned int v3:17; };
struct BFu9i_I_BFu17ll { unsigned int v1:9; int v2; unsigned long long v3:17; };
struct BFu9i_I_BFu1c { unsigned int v1:9; int v2; unsigned char v3:1; };
struct BFu9i_I_BFu1i { unsigned int v1:9; int v2; unsigned int v3:1; };
struct BFu9i_I_BFu1ll { unsigned int v1:9; int v2; unsigned long long v3:1; };
struct BFu9i_I_BFu1s { unsigned int v1:9; int v2; unsigned short v3:1; };
struct BFu9i_I_BFu31i { unsigned int v1:9; int v2; unsigned int v3:31; };
struct BFu9i_I_BFu31ll { unsigned int v1:9; int v2; unsigned long long v3:31; };
struct BFu9i_I_BFu32i { unsigned int v1:9; int v2; unsigned int v3:32; };
struct BFu9i_I_BFu32ll { unsigned int v1:9; int v2; unsigned long long v3:32; };
struct BFu9i_I_BFu33 { unsigned int v1:9; int v2; unsigned long long v3:33; };
struct BFu9i_I_BFu7c { unsigned int v1:9; int v2; unsigned char v3:7; };
struct BFu9i_I_BFu7i { unsigned int v1:9; int v2; unsigned int v3:7; };
struct BFu9i_I_BFu7ll { unsigned int v1:9; int v2; unsigned long long v3:7; };
struct BFu9i_I_BFu7s { unsigned int v1:9; int v2; unsigned short v3:7; };
struct BFu9i_I_BFu8c { unsigned int v1:9; int v2; unsigned char v3:8; };
struct BFu9i_I_BFu8i { unsigned int v1:9; int v2; unsigned int v3:8; };
struct BFu9i_I_BFu8ll { unsigned int v1:9; int v2; unsigned long long v3:8; };
struct BFu9i_I_BFu8s { unsigned int v1:9; int v2; unsigned short v3:8; };
struct BFu9i_I_BFu9i { unsigned int v1:9; int v2; unsigned int v3:9; };
struct BFu9i_I_BFu9ll { unsigned int v1:9; int v2; unsigned long long v3:9; };
struct BFu9i_I_BFu9s { unsigned int v1:9; int v2; unsigned short v3:9; };
struct BFu9i_I_C { unsigned int v1:9; int v2; char v3; };
struct BFu9i_I_D { unsigned int v1:9; int v2; double v3; };
struct BFu9i_I_F { unsigned int v1:9; int v2; float v3; };
struct BFu9i_I_I { unsigned int v1:9; int v2; int v3; };
struct BFu9i_I_Ip { unsigned int v1:9; int v2; int * v3; };
struct BFu9i_I_L { unsigned int v1:9; int v2; long long v3; };
struct BFu9i_I_S { unsigned int v1:9; int v2; short v3; };
struct BFu9i_I_Uc { unsigned int v1:9; int v2; unsigned char v3; };
struct BFu9i_I_Ui { unsigned int v1:9; int v2; unsigned int v3; };
struct BFu9i_I_Ul { unsigned int v1:9; int v2; unsigned long long v3; };
struct BFu9i_I_Us { unsigned int v1:9; int v2; unsigned short v3; };
struct BFu9i_I_Vp { unsigned int v1:9; int v2; void * v3; };
struct BFu9i_Ip { unsigned int v1:9; int * v2; };
struct BFu9i_Ip_BFu15i { unsigned int v1:9; int * v2; unsigned int v3:15; };
struct BFu9i_Ip_BFu15ll { unsigned int v1:9; int * v2; unsigned long long v3:15; };
struct BFu9i_Ip_BFu15s { unsigned int v1:9; int * v2; unsigned short v3:15; };
struct BFu9i_Ip_BFu16i { unsigned int v1:9; int * v2; unsigned int v3:16; };
struct BFu9i_Ip_BFu16ll { unsigned int v1:9; int * v2; unsigned long long v3:16; };
struct BFu9i_Ip_BFu16s { unsigned int v1:9; int * v2; unsigned short v3:16; };
struct BFu9i_Ip_BFu17i { unsigned int v1:9; int * v2; unsigned int v3:17; };
struct BFu9i_Ip_BFu17ll { unsigned int v1:9; int * v2; unsigned long long v3:17; };
struct BFu9i_Ip_BFu1c { unsigned int v1:9; int * v2; unsigned char v3:1; };
struct BFu9i_Ip_BFu1i { unsigned int v1:9; int * v2; unsigned int v3:1; };
struct BFu9i_Ip_BFu1ll { unsigned int v1:9; int * v2; unsigned long long v3:1; };
struct BFu9i_Ip_BFu1s { unsigned int v1:9; int * v2; unsigned short v3:1; };
struct BFu9i_Ip_BFu31i { unsigned int v1:9; int * v2; unsigned int v3:31; };
struct BFu9i_Ip_BFu31ll { unsigned int v1:9; int * v2; unsigned long long v3:31; };
struct BFu9i_Ip_BFu32i { unsigned int v1:9; int * v2; unsigned int v3:32; };
struct BFu9i_Ip_BFu32ll { unsigned int v1:9; int * v2; unsigned long long v3:32; };
struct BFu9i_Ip_BFu33 { unsigned int v1:9; int * v2; unsigned long long v3:33; };
struct BFu9i_Ip_BFu7c { unsigned int v1:9; int * v2; unsigned char v3:7; };
struct BFu9i_Ip_BFu7i { unsigned int v1:9; int * v2; unsigned int v3:7; };
struct BFu9i_Ip_BFu7ll { unsigned int v1:9; int * v2; unsigned long long v3:7; };
struct BFu9i_Ip_BFu7s { unsigned int v1:9; int * v2; unsigned short v3:7; };
struct BFu9i_Ip_BFu8c { unsigned int v1:9; int * v2; unsigned char v3:8; };
struct BFu9i_Ip_BFu8i { unsigned int v1:9; int * v2; unsigned int v3:8; };
struct BFu9i_Ip_BFu8ll { unsigned int v1:9; int * v2; unsigned long long v3:8; };
struct BFu9i_Ip_BFu8s { unsigned int v1:9; int * v2; unsigned short v3:8; };
struct BFu9i_Ip_BFu9i { unsigned int v1:9; int * v2; unsigned int v3:9; };
struct BFu9i_Ip_BFu9ll { unsigned int v1:9; int * v2; unsigned long long v3:9; };
struct BFu9i_Ip_BFu9s { unsigned int v1:9; int * v2; unsigned short v3:9; };
struct BFu9i_Ip_C { unsigned int v1:9; int * v2; char v3; };
struct BFu9i_Ip_D { unsigned int v1:9; int * v2; double v3; };
struct BFu9i_Ip_F { unsigned int v1:9; int * v2; float v3; };
struct BFu9i_Ip_I { unsigned int v1:9; int * v2; int v3; };
struct BFu9i_Ip_Ip { unsigned int v1:9; int * v2; int * v3; };
struct BFu9i_Ip_L { unsigned int v1:9; int * v2; long long v3; };
struct BFu9i_Ip_S { unsigned int v1:9; int * v2; short v3; };
struct BFu9i_Ip_Uc { unsigned int v1:9; int * v2; unsigned char v3; };
struct BFu9i_Ip_Ui { unsigned int v1:9; int * v2; unsigned int v3; };
struct BFu9i_Ip_Ul { unsigned int v1:9; int * v2; unsigned long long v3; };
struct BFu9i_Ip_Us { unsigned int v1:9; int * v2; unsigned short v3; };
struct BFu9i_Ip_Vp { unsigned int v1:9; int * v2; void * v3; };
struct BFu9i_L { unsigned int v1:9; long long v2; };
struct BFu9i_L_BFu15i { unsigned int v1:9; long long v2; unsigned int v3:15; };
struct BFu9i_L_BFu15ll { unsigned int v1:9; long long v2; unsigned long long v3:15; };
struct BFu9i_L_BFu15s { unsigned int v1:9; long long v2; unsigned short v3:15; };
struct BFu9i_L_BFu16i { unsigned int v1:9; long long v2; unsigned int v3:16; };
struct BFu9i_L_BFu16ll { unsigned int v1:9; long long v2; unsigned long long v3:16; };
struct BFu9i_L_BFu16s { unsigned int v1:9; long long v2; unsigned short v3:16; };
struct BFu9i_L_BFu17i { unsigned int v1:9; long long v2; unsigned int v3:17; };
struct BFu9i_L_BFu17ll { unsigned int v1:9; long long v2; unsigned long long v3:17; };
struct BFu9i_L_BFu1c { unsigned int v1:9; long long v2; unsigned char v3:1; };
struct BFu9i_L_BFu1i { unsigned int v1:9; long long v2; unsigned int v3:1; };
struct BFu9i_L_BFu1ll { unsigned int v1:9; long long v2; unsigned long long v3:1; };
struct BFu9i_L_BFu1s { unsigned int v1:9; long long v2; unsigned short v3:1; };
struct BFu9i_L_BFu31i { unsigned int v1:9; long long v2; unsigned int v3:31; };
struct BFu9i_L_BFu31ll { unsigned int v1:9; long long v2; unsigned long long v3:31; };
struct BFu9i_L_BFu32i { unsigned int v1:9; long long v2; unsigned int v3:32; };
struct BFu9i_L_BFu32ll { unsigned int v1:9; long long v2; unsigned long long v3:32; };
struct BFu9i_L_BFu33 { unsigned int v1:9; long long v2; unsigned long long v3:33; };
struct BFu9i_L_BFu7c { unsigned int v1:9; long long v2; unsigned char v3:7; };
struct BFu9i_L_BFu7i { unsigned int v1:9; long long v2; unsigned int v3:7; };
struct BFu9i_L_BFu7ll { unsigned int v1:9; long long v2; unsigned long long v3:7; };
struct BFu9i_L_BFu7s { unsigned int v1:9; long long v2; unsigned short v3:7; };
struct BFu9i_L_BFu8c { unsigned int v1:9; long long v2; unsigned char v3:8; };
struct BFu9i_L_BFu8i { unsigned int v1:9; long long v2; unsigned int v3:8; };
struct BFu9i_L_BFu8ll { unsigned int v1:9; long long v2; unsigned long long v3:8; };
struct BFu9i_L_BFu8s { unsigned int v1:9; long long v2; unsigned short v3:8; };
struct BFu9i_L_BFu9i { unsigned int v1:9; long long v2; unsigned int v3:9; };
struct BFu9i_L_BFu9ll { unsigned int v1:9; long long v2; unsigned long long v3:9; };
struct BFu9i_L_BFu9s { unsigned int v1:9; long long v2; unsigned short v3:9; };
struct BFu9i_L_C { unsigned int v1:9; long long v2; char v3; };
struct BFu9i_L_D { unsigned int v1:9; long long v2; double v3; };
struct BFu9i_L_F { unsigned int v1:9; long long v2; float v3; };
struct BFu9i_L_I { unsigned int v1:9; long long v2; int v3; };
struct BFu9i_L_Ip { unsigned int v1:9; long long v2; int * v3; };
struct BFu9i_L_L { unsigned int v1:9; long long v2; long long v3; };
struct BFu9i_L_S { unsigned int v1:9; long long v2; short v3; };
struct BFu9i_L_Uc { unsigned int v1:9; long long v2; unsigned char v3; };
struct BFu9i_L_Ui { unsigned int v1:9; long long v2; unsigned int v3; };
struct BFu9i_L_Ul { unsigned int v1:9; long long v2; unsigned long long v3; };
struct BFu9i_L_Us { unsigned int v1:9; long long v2; unsigned short v3; };
struct BFu9i_L_Vp { unsigned int v1:9; long long v2; void * v3; };
struct BFu9i_S { unsigned int v1:9; short v2; };
struct BFu9i_S_BFu15i { unsigned int v1:9; short v2; unsigned int v3:15; };
struct BFu9i_S_BFu15ll { unsigned int v1:9; short v2; unsigned long long v3:15; };
struct BFu9i_S_BFu15s { unsigned int v1:9; short v2; unsigned short v3:15; };
struct BFu9i_S_BFu16i { unsigned int v1:9; short v2; unsigned int v3:16; };
struct BFu9i_S_BFu16ll { unsigned int v1:9; short v2; unsigned long long v3:16; };
struct BFu9i_S_BFu16s { unsigned int v1:9; short v2; unsigned short v3:16; };
struct BFu9i_S_BFu17i { unsigned int v1:9; short v2; unsigned int v3:17; };
struct BFu9i_S_BFu17ll { unsigned int v1:9; short v2; unsigned long long v3:17; };
struct BFu9i_S_BFu1c { unsigned int v1:9; short v2; unsigned char v3:1; };
struct BFu9i_S_BFu1i { unsigned int v1:9; short v2; unsigned int v3:1; };
struct BFu9i_S_BFu1ll { unsigned int v1:9; short v2; unsigned long long v3:1; };
struct BFu9i_S_BFu1s { unsigned int v1:9; short v2; unsigned short v3:1; };
struct BFu9i_S_BFu31i { unsigned int v1:9; short v2; unsigned int v3:31; };
struct BFu9i_S_BFu31ll { unsigned int v1:9; short v2; unsigned long long v3:31; };
struct BFu9i_S_BFu32i { unsigned int v1:9; short v2; unsigned int v3:32; };
struct BFu9i_S_BFu32ll { unsigned int v1:9; short v2; unsigned long long v3:32; };
struct BFu9i_S_BFu33 { unsigned int v1:9; short v2; unsigned long long v3:33; };
struct BFu9i_S_BFu7c { unsigned int v1:9; short v2; unsigned char v3:7; };
struct BFu9i_S_BFu7i { unsigned int v1:9; short v2; unsigned int v3:7; };
struct BFu9i_S_BFu7ll { unsigned int v1:9; short v2; unsigned long long v3:7; };
struct BFu9i_S_BFu7s { unsigned int v1:9; short v2; unsigned short v3:7; };
struct BFu9i_S_BFu8c { unsigned int v1:9; short v2; unsigned char v3:8; };
struct BFu9i_S_BFu8i { unsigned int v1:9; short v2; unsigned int v3:8; };
struct BFu9i_S_BFu8ll { unsigned int v1:9; short v2; unsigned long long v3:8; };
struct BFu9i_S_BFu8s { unsigned int v1:9; short v2; unsigned short v3:8; };
struct BFu9i_S_BFu9i { unsigned int v1:9; short v2; unsigned int v3:9; };
struct BFu9i_S_BFu9ll { unsigned int v1:9; short v2; unsigned long long v3:9; };
struct BFu9i_S_BFu9s { unsigned int v1:9; short v2; unsigned short v3:9; };
struct BFu9i_S_C { unsigned int v1:9; short v2; char v3; };
struct BFu9i_S_D { unsigned int v1:9; short v2; double v3; };
struct BFu9i_S_F { unsigned int v1:9; short v2; float v3; };
struct BFu9i_S_I { unsigned int v1:9; short v2; int v3; };
struct BFu9i_S_Ip { unsigned int v1:9; short v2; int * v3; };
struct BFu9i_S_L { unsigned int v1:9; short v2; long long v3; };
struct BFu9i_S_S { unsigned int v1:9; short v2; short v3; };
struct BFu9i_S_Uc { unsigned int v1:9; short v2; unsigned char v3; };
struct BFu9i_S_Ui { unsigned int v1:9; short v2; unsigned int v3; };
struct BFu9i_S_Ul { unsigned int v1:9; short v2; unsigned long long v3; };
struct BFu9i_S_Us { unsigned int v1:9; short v2; unsigned short v3; };
struct BFu9i_S_Vp { unsigned int v1:9; short v2; void * v3; };
struct BFu9i_Uc { unsigned int v1:9; unsigned char v2; };
struct BFu9i_Uc_BFu15i { unsigned int v1:9; unsigned char v2; unsigned int v3:15; };
struct BFu9i_Uc_BFu15ll { unsigned int v1:9; unsigned char v2; unsigned long long v3:15; };
struct BFu9i_Uc_BFu15s { unsigned int v1:9; unsigned char v2; unsigned short v3:15; };
struct BFu9i_Uc_BFu16i { unsigned int v1:9; unsigned char v2; unsigned int v3:16; };
struct BFu9i_Uc_BFu16ll { unsigned int v1:9; unsigned char v2; unsigned long long v3:16; };
struct BFu9i_Uc_BFu16s { unsigned int v1:9; unsigned char v2; unsigned short v3:16; };
struct BFu9i_Uc_BFu17i { unsigned int v1:9; unsigned char v2; unsigned int v3:17; };
struct BFu9i_Uc_BFu17ll { unsigned int v1:9; unsigned char v2; unsigned long long v3:17; };
struct BFu9i_Uc_BFu1c { unsigned int v1:9; unsigned char v2; unsigned char v3:1; };
struct BFu9i_Uc_BFu1i { unsigned int v1:9; unsigned char v2; unsigned int v3:1; };
struct BFu9i_Uc_BFu1ll { unsigned int v1:9; unsigned char v2; unsigned long long v3:1; };
struct BFu9i_Uc_BFu1s { unsigned int v1:9; unsigned char v2; unsigned short v3:1; };
struct BFu9i_Uc_BFu31i { unsigned int v1:9; unsigned char v2; unsigned int v3:31; };
struct BFu9i_Uc_BFu31ll { unsigned int v1:9; unsigned char v2; unsigned long long v3:31; };
struct BFu9i_Uc_BFu32i { unsigned int v1:9; unsigned char v2; unsigned int v3:32; };
struct BFu9i_Uc_BFu32ll { unsigned int v1:9; unsigned char v2; unsigned long long v3:32; };
struct BFu9i_Uc_BFu33 { unsigned int v1:9; unsigned char v2; unsigned long long v3:33; };
struct BFu9i_Uc_BFu7c { unsigned int v1:9; unsigned char v2; unsigned char v3:7; };
struct BFu9i_Uc_BFu7i { unsigned int v1:9; unsigned char v2; unsigned int v3:7; };
struct BFu9i_Uc_BFu7ll { unsigned int v1:9; unsigned char v2; unsigned long long v3:7; };
struct BFu9i_Uc_BFu7s { unsigned int v1:9; unsigned char v2; unsigned short v3:7; };
struct BFu9i_Uc_BFu8c { unsigned int v1:9; unsigned char v2; unsigned char v3:8; };
struct BFu9i_Uc_BFu8i { unsigned int v1:9; unsigned char v2; unsigned int v3:8; };
struct BFu9i_Uc_BFu8ll { unsigned int v1:9; unsigned char v2; unsigned long long v3:8; };
struct BFu9i_Uc_BFu8s { unsigned int v1:9; unsigned char v2; unsigned short v3:8; };
struct BFu9i_Uc_BFu9i { unsigned int v1:9; unsigned char v2; unsigned int v3:9; };
struct BFu9i_Uc_BFu9ll { unsigned int v1:9; unsigned char v2; unsigned long long v3:9; };
struct BFu9i_Uc_BFu9s { unsigned int v1:9; unsigned char v2; unsigned short v3:9; };
struct BFu9i_Uc_C { unsigned int v1:9; unsigned char v2; char v3; };
struct BFu9i_Uc_D { unsigned int v1:9; unsigned char v2; double v3; };
struct BFu9i_Uc_F { unsigned int v1:9; unsigned char v2; float v3; };
struct BFu9i_Uc_I { unsigned int v1:9; unsigned char v2; int v3; };
struct BFu9i_Uc_Ip { unsigned int v1:9; unsigned char v2; int * v3; };
struct BFu9i_Uc_L { unsigned int v1:9; unsigned char v2; long long v3; };
struct BFu9i_Uc_S { unsigned int v1:9; unsigned char v2; short v3; };
struct BFu9i_Uc_Uc { unsigned int v1:9; unsigned char v2; unsigned char v3; };
struct BFu9i_Uc_Ui { unsigned int v1:9; unsigned char v2; unsigned int v3; };
struct BFu9i_Uc_Ul { unsigned int v1:9; unsigned char v2; unsigned long long v3; };
struct BFu9i_Uc_Us { unsigned int v1:9; unsigned char v2; unsigned short v3; };
struct BFu9i_Uc_Vp { unsigned int v1:9; unsigned char v2; void * v3; };
struct BFu9i_Ui { unsigned int v1:9; unsigned int v2; };
struct BFu9i_Ui_BFu15i { unsigned int v1:9; unsigned int v2; unsigned int v3:15; };
struct BFu9i_Ui_BFu15ll { unsigned int v1:9; unsigned int v2; unsigned long long v3:15; };
struct BFu9i_Ui_BFu15s { unsigned int v1:9; unsigned int v2; unsigned short v3:15; };
struct BFu9i_Ui_BFu16i { unsigned int v1:9; unsigned int v2; unsigned int v3:16; };
struct BFu9i_Ui_BFu16ll { unsigned int v1:9; unsigned int v2; unsigned long long v3:16; };
struct BFu9i_Ui_BFu16s { unsigned int v1:9; unsigned int v2; unsigned short v3:16; };
struct BFu9i_Ui_BFu17i { unsigned int v1:9; unsigned int v2; unsigned int v3:17; };
struct BFu9i_Ui_BFu17ll { unsigned int v1:9; unsigned int v2; unsigned long long v3:17; };
struct BFu9i_Ui_BFu1c { unsigned int v1:9; unsigned int v2; unsigned char v3:1; };
struct BFu9i_Ui_BFu1i { unsigned int v1:9; unsigned int v2; unsigned int v3:1; };
struct BFu9i_Ui_BFu1ll { unsigned int v1:9; unsigned int v2; unsigned long long v3:1; };
struct BFu9i_Ui_BFu1s { unsigned int v1:9; unsigned int v2; unsigned short v3:1; };
struct BFu9i_Ui_BFu31i { unsigned int v1:9; unsigned int v2; unsigned int v3:31; };
struct BFu9i_Ui_BFu31ll { unsigned int v1:9; unsigned int v2; unsigned long long v3:31; };
struct BFu9i_Ui_BFu32i { unsigned int v1:9; unsigned int v2; unsigned int v3:32; };
struct BFu9i_Ui_BFu32ll { unsigned int v1:9; unsigned int v2; unsigned long long v3:32; };
struct BFu9i_Ui_BFu33 { unsigned int v1:9; unsigned int v2; unsigned long long v3:33; };
struct BFu9i_Ui_BFu7c { unsigned int v1:9; unsigned int v2; unsigned char v3:7; };
struct BFu9i_Ui_BFu7i { unsigned int v1:9; unsigned int v2; unsigned int v3:7; };
struct BFu9i_Ui_BFu7ll { unsigned int v1:9; unsigned int v2; unsigned long long v3:7; };
struct BFu9i_Ui_BFu7s { unsigned int v1:9; unsigned int v2; unsigned short v3:7; };
struct BFu9i_Ui_BFu8c { unsigned int v1:9; unsigned int v2; unsigned char v3:8; };
struct BFu9i_Ui_BFu8i { unsigned int v1:9; unsigned int v2; unsigned int v3:8; };
struct BFu9i_Ui_BFu8ll { unsigned int v1:9; unsigned int v2; unsigned long long v3:8; };
struct BFu9i_Ui_BFu8s { unsigned int v1:9; unsigned int v2; unsigned short v3:8; };
struct BFu9i_Ui_BFu9i { unsigned int v1:9; unsigned int v2; unsigned int v3:9; };
struct BFu9i_Ui_BFu9ll { unsigned int v1:9; unsigned int v2; unsigned long long v3:9; };
struct BFu9i_Ui_BFu9s { unsigned int v1:9; unsigned int v2; unsigned short v3:9; };
struct BFu9i_Ui_C { unsigned int v1:9; unsigned int v2; char v3; };
struct BFu9i_Ui_D { unsigned int v1:9; unsigned int v2; double v3; };
struct BFu9i_Ui_F { unsigned int v1:9; unsigned int v2; float v3; };
struct BFu9i_Ui_I { unsigned int v1:9; unsigned int v2; int v3; };
struct BFu9i_Ui_Ip { unsigned int v1:9; unsigned int v2; int * v3; };
struct BFu9i_Ui_L { unsigned int v1:9; unsigned int v2; long long v3; };
struct BFu9i_Ui_S { unsigned int v1:9; unsigned int v2; short v3; };
struct BFu9i_Ui_Uc { unsigned int v1:9; unsigned int v2; unsigned char v3; };
struct BFu9i_Ui_Ui { unsigned int v1:9; unsigned int v2; unsigned int v3; };
struct BFu9i_Ui_Ul { unsigned int v1:9; unsigned int v2; unsigned long long v3; };
struct BFu9i_Ui_Us { unsigned int v1:9; unsigned int v2; unsigned short v3; };
struct BFu9i_Ui_Vp { unsigned int v1:9; unsigned int v2; void * v3; };
struct BFu9i_Ul { unsigned int v1:9; unsigned long long v2; };
struct BFu9i_Ul_BFu15i { unsigned int v1:9; unsigned long long v2; unsigned int v3:15; };
struct BFu9i_Ul_BFu15ll { unsigned int v1:9; unsigned long long v2; unsigned long long v3:15; };
struct BFu9i_Ul_BFu15s { unsigned int v1:9; unsigned long long v2; unsigned short v3:15; };
struct BFu9i_Ul_BFu16i { unsigned int v1:9; unsigned long long v2; unsigned int v3:16; };
struct BFu9i_Ul_BFu16ll { unsigned int v1:9; unsigned long long v2; unsigned long long v3:16; };
struct BFu9i_Ul_BFu16s { unsigned int v1:9; unsigned long long v2; unsigned short v3:16; };
struct BFu9i_Ul_BFu17i { unsigned int v1:9; unsigned long long v2; unsigned int v3:17; };
struct BFu9i_Ul_BFu17ll { unsigned int v1:9; unsigned long long v2; unsigned long long v3:17; };
struct BFu9i_Ul_BFu1c { unsigned int v1:9; unsigned long long v2; unsigned char v3:1; };
struct BFu9i_Ul_BFu1i { unsigned int v1:9; unsigned long long v2; unsigned int v3:1; };
struct BFu9i_Ul_BFu1ll { unsigned int v1:9; unsigned long long v2; unsigned long long v3:1; };
struct BFu9i_Ul_BFu1s { unsigned int v1:9; unsigned long long v2; unsigned short v3:1; };
struct BFu9i_Ul_BFu31i { unsigned int v1:9; unsigned long long v2; unsigned int v3:31; };
struct BFu9i_Ul_BFu31ll { unsigned int v1:9; unsigned long long v2; unsigned long long v3:31; };
struct BFu9i_Ul_BFu32i { unsigned int v1:9; unsigned long long v2; unsigned int v3:32; };
struct BFu9i_Ul_BFu32ll { unsigned int v1:9; unsigned long long v2; unsigned long long v3:32; };
struct BFu9i_Ul_BFu33 { unsigned int v1:9; unsigned long long v2; unsigned long long v3:33; };
struct BFu9i_Ul_BFu7c { unsigned int v1:9; unsigned long long v2; unsigned char v3:7; };
struct BFu9i_Ul_BFu7i { unsigned int v1:9; unsigned long long v2; unsigned int v3:7; };
struct BFu9i_Ul_BFu7ll { unsigned int v1:9; unsigned long long v2; unsigned long long v3:7; };
struct BFu9i_Ul_BFu7s { unsigned int v1:9; unsigned long long v2; unsigned short v3:7; };
struct BFu9i_Ul_BFu8c { unsigned int v1:9; unsigned long long v2; unsigned char v3:8; };
struct BFu9i_Ul_BFu8i { unsigned int v1:9; unsigned long long v2; unsigned int v3:8; };
struct BFu9i_Ul_BFu8ll { unsigned int v1:9; unsigned long long v2; unsigned long long v3:8; };
struct BFu9i_Ul_BFu8s { unsigned int v1:9; unsigned long long v2; unsigned short v3:8; };
struct BFu9i_Ul_BFu9i { unsigned int v1:9; unsigned long long v2; unsigned int v3:9; };
struct BFu9i_Ul_BFu9ll { unsigned int v1:9; unsigned long long v2; unsigned long long v3:9; };
struct BFu9i_Ul_BFu9s { unsigned int v1:9; unsigned long long v2; unsigned short v3:9; };
struct BFu9i_Ul_C { unsigned int v1:9; unsigned long long v2; char v3; };
struct BFu9i_Ul_D { unsigned int v1:9; unsigned long long v2; double v3; };
struct BFu9i_Ul_F { unsigned int v1:9; unsigned long long v2; float v3; };
struct BFu9i_Ul_I { unsigned int v1:9; unsigned long long v2; int v3; };
struct BFu9i_Ul_Ip { unsigned int v1:9; unsigned long long v2; int * v3; };
struct BFu9i_Ul_L { unsigned int v1:9; unsigned long long v2; long long v3; };
struct BFu9i_Ul_S { unsigned int v1:9; unsigned long long v2; short v3; };
struct BFu9i_Ul_Uc { unsigned int v1:9; unsigned long long v2; unsigned char v3; };
struct BFu9i_Ul_Ui { unsigned int v1:9; unsigned long long v2; unsigned int v3; };
struct BFu9i_Ul_Ul { unsigned int v1:9; unsigned long long v2; unsigned long long v3; };
struct BFu9i_Ul_Us { unsigned int v1:9; unsigned long long v2; unsigned short v3; };
struct BFu9i_Ul_Vp { unsigned int v1:9; unsigned long long v2; void * v3; };
struct BFu9i_Us { unsigned int v1:9; unsigned short v2; };
struct BFu9i_Us_BFu15i { unsigned int v1:9; unsigned short v2; unsigned int v3:15; };
struct BFu9i_Us_BFu15ll { unsigned int v1:9; unsigned short v2; unsigned long long v3:15; };
struct BFu9i_Us_BFu15s { unsigned int v1:9; unsigned short v2; unsigned short v3:15; };
struct BFu9i_Us_BFu16i { unsigned int v1:9; unsigned short v2; unsigned int v3:16; };
struct BFu9i_Us_BFu16ll { unsigned int v1:9; unsigned short v2; unsigned long long v3:16; };
struct BFu9i_Us_BFu16s { unsigned int v1:9; unsigned short v2; unsigned short v3:16; };
struct BFu9i_Us_BFu17i { unsigned int v1:9; unsigned short v2; unsigned int v3:17; };
struct BFu9i_Us_BFu17ll { unsigned int v1:9; unsigned short v2; unsigned long long v3:17; };
struct BFu9i_Us_BFu1c { unsigned int v1:9; unsigned short v2; unsigned char v3:1; };
struct BFu9i_Us_BFu1i { unsigned int v1:9; unsigned short v2; unsigned int v3:1; };
struct BFu9i_Us_BFu1ll { unsigned int v1:9; unsigned short v2; unsigned long long v3:1; };
struct BFu9i_Us_BFu1s { unsigned int v1:9; unsigned short v2; unsigned short v3:1; };
struct BFu9i_Us_BFu31i { unsigned int v1:9; unsigned short v2; unsigned int v3:31; };
struct BFu9i_Us_BFu31ll { unsigned int v1:9; unsigned short v2; unsigned long long v3:31; };
struct BFu9i_Us_BFu32i { unsigned int v1:9; unsigned short v2; unsigned int v3:32; };
struct BFu9i_Us_BFu32ll { unsigned int v1:9; unsigned short v2; unsigned long long v3:32; };
struct BFu9i_Us_BFu33 { unsigned int v1:9; unsigned short v2; unsigned long long v3:33; };
struct BFu9i_Us_BFu7c { unsigned int v1:9; unsigned short v2; unsigned char v3:7; };
struct BFu9i_Us_BFu7i { unsigned int v1:9; unsigned short v2; unsigned int v3:7; };
struct BFu9i_Us_BFu7ll { unsigned int v1:9; unsigned short v2; unsigned long long v3:7; };
struct BFu9i_Us_BFu7s { unsigned int v1:9; unsigned short v2; unsigned short v3:7; };
struct BFu9i_Us_BFu8c { unsigned int v1:9; unsigned short v2; unsigned char v3:8; };
struct BFu9i_Us_BFu8i { unsigned int v1:9; unsigned short v2; unsigned int v3:8; };
struct BFu9i_Us_BFu8ll { unsigned int v1:9; unsigned short v2; unsigned long long v3:8; };
struct BFu9i_Us_BFu8s { unsigned int v1:9; unsigned short v2; unsigned short v3:8; };
struct BFu9i_Us_BFu9i { unsigned int v1:9; unsigned short v2; unsigned int v3:9; };
struct BFu9i_Us_BFu9ll { unsigned int v1:9; unsigned short v2; unsigned long long v3:9; };
struct BFu9i_Us_BFu9s { unsigned int v1:9; unsigned short v2; unsigned short v3:9; };
struct BFu9i_Us_C { unsigned int v1:9; unsigned short v2; char v3; };
struct BFu9i_Us_D { unsigned int v1:9; unsigned short v2; double v3; };
struct BFu9i_Us_F { unsigned int v1:9; unsigned short v2; float v3; };
struct BFu9i_Us_I { unsigned int v1:9; unsigned short v2; int v3; };
struct BFu9i_Us_Ip { unsigned int v1:9; unsigned short v2; int * v3; };
struct BFu9i_Us_L { unsigned int v1:9; unsigned short v2; long long v3; };
struct BFu9i_Us_S { unsigned int v1:9; unsigned short v2; short v3; };
struct BFu9i_Us_Uc { unsigned int v1:9; unsigned short v2; unsigned char v3; };
struct BFu9i_Us_Ui { unsigned int v1:9; unsigned short v2; unsigned int v3; };
struct BFu9i_Us_Ul { unsigned int v1:9; unsigned short v2; unsigned long long v3; };
struct BFu9i_Us_Us { unsigned int v1:9; unsigned short v2; unsigned short v3; };
struct BFu9i_Us_Vp { unsigned int v1:9; unsigned short v2; void * v3; };
struct BFu9i_Vp { unsigned int v1:9; void * v2; };
struct BFu9i_Vp_BFu15i { unsigned int v1:9; void * v2; unsigned int v3:15; };
struct BFu9i_Vp_BFu15ll { unsigned int v1:9; void * v2; unsigned long long v3:15; };
struct BFu9i_Vp_BFu15s { unsigned int v1:9; void * v2; unsigned short v3:15; };
struct BFu9i_Vp_BFu16i { unsigned int v1:9; void * v2; unsigned int v3:16; };
struct BFu9i_Vp_BFu16ll { unsigned int v1:9; void * v2; unsigned long long v3:16; };
struct BFu9i_Vp_BFu16s { unsigned int v1:9; void * v2; unsigned short v3:16; };
struct BFu9i_Vp_BFu17i { unsigned int v1:9; void * v2; unsigned int v3:17; };
struct BFu9i_Vp_BFu17ll { unsigned int v1:9; void * v2; unsigned long long v3:17; };
struct BFu9i_Vp_BFu1c { unsigned int v1:9; void * v2; unsigned char v3:1; };
struct BFu9i_Vp_BFu1i { unsigned int v1:9; void * v2; unsigned int v3:1; };
struct BFu9i_Vp_BFu1ll { unsigned int v1:9; void * v2; unsigned long long v3:1; };
struct BFu9i_Vp_BFu1s { unsigned int v1:9; void * v2; unsigned short v3:1; };
struct BFu9i_Vp_BFu31i { unsigned int v1:9; void * v2; unsigned int v3:31; };
struct BFu9i_Vp_BFu31ll { unsigned int v1:9; void * v2; unsigned long long v3:31; };
struct BFu9i_Vp_BFu32i { unsigned int v1:9; void * v2; unsigned int v3:32; };
struct BFu9i_Vp_BFu32ll { unsigned int v1:9; void * v2; unsigned long long v3:32; };
struct BFu9i_Vp_BFu33 { unsigned int v1:9; void * v2; unsigned long long v3:33; };
struct BFu9i_Vp_BFu7c { unsigned int v1:9; void * v2; unsigned char v3:7; };
struct BFu9i_Vp_BFu7i { unsigned int v1:9; void * v2; unsigned int v3:7; };
struct BFu9i_Vp_BFu7ll { unsigned int v1:9; void * v2; unsigned long long v3:7; };
struct BFu9i_Vp_BFu7s { unsigned int v1:9; void * v2; unsigned short v3:7; };
struct BFu9i_Vp_BFu8c { unsigned int v1:9; void * v2; unsigned char v3:8; };
struct BFu9i_Vp_BFu8i { unsigned int v1:9; void * v2; unsigned int v3:8; };
struct BFu9i_Vp_BFu8ll { unsigned int v1:9; void * v2; unsigned long long v3:8; };
struct BFu9i_Vp_BFu8s { unsigned int v1:9; void * v2; unsigned short v3:8; };
struct BFu9i_Vp_BFu9i { unsigned int v1:9; void * v2; unsigned int v3:9; };
struct BFu9i_Vp_BFu9ll { unsigned int v1:9; void * v2; unsigned long long v3:9; };
struct BFu9i_Vp_BFu9s { unsigned int v1:9; void * v2; unsigned short v3:9; };
struct BFu9i_Vp_C { unsigned int v1:9; void * v2; char v3; };
struct BFu9i_Vp_D { unsigned int v1:9; void * v2; double v3; };
struct BFu9i_Vp_F { unsigned int v1:9; void * v2; float v3; };
struct BFu9i_Vp_I { unsigned int v1:9; void * v2; int v3; };
struct BFu9i_Vp_Ip { unsigned int v1:9; void * v2; int * v3; };
struct BFu9i_Vp_L { unsigned int v1:9; void * v2; long long v3; };
struct BFu9i_Vp_S { unsigned int v1:9; void * v2; short v3; };
struct BFu9i_Vp_Uc { unsigned int v1:9; void * v2; unsigned char v3; };
struct BFu9i_Vp_Ui { unsigned int v1:9; void * v2; unsigned int v3; };
struct BFu9i_Vp_Ul { unsigned int v1:9; void * v2; unsigned long long v3; };
struct BFu9i_Vp_Us { unsigned int v1:9; void * v2; unsigned short v3; };
struct BFu9i_Vp_Vp { unsigned int v1:9; void * v2; void * v3; };
struct BFu9ll { unsigned long long v1:9; };
struct BFu9ll_BFs9i { unsigned long long v1:9; signed int v2:9; };
struct BFu9ll_BFs9i_BFs9i { unsigned long long v1:9; signed int v2:9; signed int v3:9; };
struct BFu9ll_BFs9i_BFs9i_BFs9i { unsigned long long v1:9; signed int v2:9; signed int v3:9; signed int v4:9; };
struct BFu9ll_BFs9i_BFs9i_BFs9ll { unsigned long long v1:9; signed int v2:9; signed int v3:9; signed long long v4:9; };
struct BFu9ll_BFs9i_BFs9i_BFs9s { unsigned long long v1:9; signed int v2:9; signed int v3:9; signed short v4:9; };
struct BFu9ll_BFs9i_BFs9i_BFu9i { unsigned long long v1:9; signed int v2:9; signed int v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9i_BFs9i_BFu9ll { unsigned long long v1:9; signed int v2:9; signed int v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9i_BFs9i_BFu9s { unsigned long long v1:9; signed int v2:9; signed int v3:9; unsigned short v4:9; };
struct BFu9ll_BFs9i_BFs9ll { unsigned long long v1:9; signed int v2:9; signed long long v3:9; };
struct BFu9ll_BFs9i_BFs9ll_BFs9i { unsigned long long v1:9; signed int v2:9; signed long long v3:9; signed int v4:9; };
struct BFu9ll_BFs9i_BFs9ll_BFs9ll { unsigned long long v1:9; signed int v2:9; signed long long v3:9; signed long long v4:9; };
struct BFu9ll_BFs9i_BFs9ll_BFs9s { unsigned long long v1:9; signed int v2:9; signed long long v3:9; signed short v4:9; };
struct BFu9ll_BFs9i_BFs9ll_BFu9i { unsigned long long v1:9; signed int v2:9; signed long long v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9i_BFs9ll_BFu9ll { unsigned long long v1:9; signed int v2:9; signed long long v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9i_BFs9ll_BFu9s { unsigned long long v1:9; signed int v2:9; signed long long v3:9; unsigned short v4:9; };
struct BFu9ll_BFs9i_BFs9s { unsigned long long v1:9; signed int v2:9; signed short v3:9; };
struct BFu9ll_BFs9i_BFs9s_BFs9i { unsigned long long v1:9; signed int v2:9; signed short v3:9; signed int v4:9; };
struct BFu9ll_BFs9i_BFs9s_BFs9ll { unsigned long long v1:9; signed int v2:9; signed short v3:9; signed long long v4:9; };
struct BFu9ll_BFs9i_BFs9s_BFs9s { unsigned long long v1:9; signed int v2:9; signed short v3:9; signed short v4:9; };
struct BFu9ll_BFs9i_BFs9s_BFu9i { unsigned long long v1:9; signed int v2:9; signed short v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9i_BFs9s_BFu9ll { unsigned long long v1:9; signed int v2:9; signed short v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9i_BFs9s_BFu9s { unsigned long long v1:9; signed int v2:9; signed short v3:9; unsigned short v4:9; };
struct BFu9ll_BFs9i_BFu9i { unsigned long long v1:9; signed int v2:9; unsigned int v3:9; };
struct BFu9ll_BFs9i_BFu9i_BFs9i { unsigned long long v1:9; signed int v2:9; unsigned int v3:9; signed int v4:9; };
struct BFu9ll_BFs9i_BFu9i_BFs9ll { unsigned long long v1:9; signed int v2:9; unsigned int v3:9; signed long long v4:9; };
struct BFu9ll_BFs9i_BFu9i_BFs9s { unsigned long long v1:9; signed int v2:9; unsigned int v3:9; signed short v4:9; };
struct BFu9ll_BFs9i_BFu9i_BFu9i { unsigned long long v1:9; signed int v2:9; unsigned int v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9i_BFu9i_BFu9ll { unsigned long long v1:9; signed int v2:9; unsigned int v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9i_BFu9i_BFu9s { unsigned long long v1:9; signed int v2:9; unsigned int v3:9; unsigned short v4:9; };
struct BFu9ll_BFs9i_BFu9ll { unsigned long long v1:9; signed int v2:9; unsigned long long v3:9; };
struct BFu9ll_BFs9i_BFu9ll_BFs9i { unsigned long long v1:9; signed int v2:9; unsigned long long v3:9; signed int v4:9; };
struct BFu9ll_BFs9i_BFu9ll_BFs9ll { unsigned long long v1:9; signed int v2:9; unsigned long long v3:9; signed long long v4:9; };
struct BFu9ll_BFs9i_BFu9ll_BFs9s { unsigned long long v1:9; signed int v2:9; unsigned long long v3:9; signed short v4:9; };
struct BFu9ll_BFs9i_BFu9ll_BFu9i { unsigned long long v1:9; signed int v2:9; unsigned long long v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9i_BFu9ll_BFu9ll { unsigned long long v1:9; signed int v2:9; unsigned long long v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9i_BFu9ll_BFu9s { unsigned long long v1:9; signed int v2:9; unsigned long long v3:9; unsigned short v4:9; };
struct BFu9ll_BFs9i_BFu9s { unsigned long long v1:9; signed int v2:9; unsigned short v3:9; };
struct BFu9ll_BFs9i_BFu9s_BFs9i { unsigned long long v1:9; signed int v2:9; unsigned short v3:9; signed int v4:9; };
struct BFu9ll_BFs9i_BFu9s_BFs9ll { unsigned long long v1:9; signed int v2:9; unsigned short v3:9; signed long long v4:9; };
struct BFu9ll_BFs9i_BFu9s_BFs9s { unsigned long long v1:9; signed int v2:9; unsigned short v3:9; signed short v4:9; };
struct BFu9ll_BFs9i_BFu9s_BFu9i { unsigned long long v1:9; signed int v2:9; unsigned short v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9i_BFu9s_BFu9ll { unsigned long long v1:9; signed int v2:9; unsigned short v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9i_BFu9s_BFu9s { unsigned long long v1:9; signed int v2:9; unsigned short v3:9; unsigned short v4:9; };
struct BFu9ll_BFs9ll { unsigned long long v1:9; signed long long v2:9; };
struct BFu9ll_BFs9ll_BFs9i { unsigned long long v1:9; signed long long v2:9; signed int v3:9; };
struct BFu9ll_BFs9ll_BFs9i_BFs9i { unsigned long long v1:9; signed long long v2:9; signed int v3:9; signed int v4:9; };
struct BFu9ll_BFs9ll_BFs9i_BFs9ll { unsigned long long v1:9; signed long long v2:9; signed int v3:9; signed long long v4:9; };
struct BFu9ll_BFs9ll_BFs9i_BFs9s { unsigned long long v1:9; signed long long v2:9; signed int v3:9; signed short v4:9; };
struct BFu9ll_BFs9ll_BFs9i_BFu9i { unsigned long long v1:9; signed long long v2:9; signed int v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9ll_BFs9i_BFu9ll { unsigned long long v1:9; signed long long v2:9; signed int v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9ll_BFs9i_BFu9s { unsigned long long v1:9; signed long long v2:9; signed int v3:9; unsigned short v4:9; };
struct BFu9ll_BFs9ll_BFs9ll { unsigned long long v1:9; signed long long v2:9; signed long long v3:9; };
struct BFu9ll_BFs9ll_BFs9ll_BFs9i { unsigned long long v1:9; signed long long v2:9; signed long long v3:9; signed int v4:9; };
struct BFu9ll_BFs9ll_BFs9ll_BFs9ll { unsigned long long v1:9; signed long long v2:9; signed long long v3:9; signed long long v4:9; };
struct BFu9ll_BFs9ll_BFs9ll_BFs9s { unsigned long long v1:9; signed long long v2:9; signed long long v3:9; signed short v4:9; };
struct BFu9ll_BFs9ll_BFs9ll_BFu9i { unsigned long long v1:9; signed long long v2:9; signed long long v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9ll_BFs9ll_BFu9ll { unsigned long long v1:9; signed long long v2:9; signed long long v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9ll_BFs9ll_BFu9s { unsigned long long v1:9; signed long long v2:9; signed long long v3:9; unsigned short v4:9; };
struct BFu9ll_BFs9ll_BFs9s { unsigned long long v1:9; signed long long v2:9; signed short v3:9; };
struct BFu9ll_BFs9ll_BFs9s_BFs9i { unsigned long long v1:9; signed long long v2:9; signed short v3:9; signed int v4:9; };
struct BFu9ll_BFs9ll_BFs9s_BFs9ll { unsigned long long v1:9; signed long long v2:9; signed short v3:9; signed long long v4:9; };
struct BFu9ll_BFs9ll_BFs9s_BFs9s { unsigned long long v1:9; signed long long v2:9; signed short v3:9; signed short v4:9; };
struct BFu9ll_BFs9ll_BFs9s_BFu9i { unsigned long long v1:9; signed long long v2:9; signed short v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9ll_BFs9s_BFu9ll { unsigned long long v1:9; signed long long v2:9; signed short v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9ll_BFs9s_BFu9s { unsigned long long v1:9; signed long long v2:9; signed short v3:9; unsigned short v4:9; };
struct BFu9ll_BFs9ll_BFu9i { unsigned long long v1:9; signed long long v2:9; unsigned int v3:9; };
struct BFu9ll_BFs9ll_BFu9i_BFs9i { unsigned long long v1:9; signed long long v2:9; unsigned int v3:9; signed int v4:9; };
struct BFu9ll_BFs9ll_BFu9i_BFs9ll { unsigned long long v1:9; signed long long v2:9; unsigned int v3:9; signed long long v4:9; };
struct BFu9ll_BFs9ll_BFu9i_BFs9s { unsigned long long v1:9; signed long long v2:9; unsigned int v3:9; signed short v4:9; };
struct BFu9ll_BFs9ll_BFu9i_BFu9i { unsigned long long v1:9; signed long long v2:9; unsigned int v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9ll_BFu9i_BFu9ll { unsigned long long v1:9; signed long long v2:9; unsigned int v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9ll_BFu9i_BFu9s { unsigned long long v1:9; signed long long v2:9; unsigned int v3:9; unsigned short v4:9; };
struct BFu9ll_BFs9ll_BFu9ll { unsigned long long v1:9; signed long long v2:9; unsigned long long v3:9; };
struct BFu9ll_BFs9ll_BFu9ll_BFs9i { unsigned long long v1:9; signed long long v2:9; unsigned long long v3:9; signed int v4:9; };
struct BFu9ll_BFs9ll_BFu9ll_BFs9ll { unsigned long long v1:9; signed long long v2:9; unsigned long long v3:9; signed long long v4:9; };
struct BFu9ll_BFs9ll_BFu9ll_BFs9s { unsigned long long v1:9; signed long long v2:9; unsigned long long v3:9; signed short v4:9; };
struct BFu9ll_BFs9ll_BFu9ll_BFu9i { unsigned long long v1:9; signed long long v2:9; unsigned long long v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9ll_BFu9ll_BFu9ll { unsigned long long v1:9; signed long long v2:9; unsigned long long v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9ll_BFu9ll_BFu9s { unsigned long long v1:9; signed long long v2:9; unsigned long long v3:9; unsigned short v4:9; };
struct BFu9ll_BFs9ll_BFu9s { unsigned long long v1:9; signed long long v2:9; unsigned short v3:9; };
struct BFu9ll_BFs9ll_BFu9s_BFs9i { unsigned long long v1:9; signed long long v2:9; unsigned short v3:9; signed int v4:9; };
struct BFu9ll_BFs9ll_BFu9s_BFs9ll { unsigned long long v1:9; signed long long v2:9; unsigned short v3:9; signed long long v4:9; };
struct BFu9ll_BFs9ll_BFu9s_BFs9s { unsigned long long v1:9; signed long long v2:9; unsigned short v3:9; signed short v4:9; };
struct BFu9ll_BFs9ll_BFu9s_BFu9i { unsigned long long v1:9; signed long long v2:9; unsigned short v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9ll_BFu9s_BFu9ll { unsigned long long v1:9; signed long long v2:9; unsigned short v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9ll_BFu9s_BFu9s { unsigned long long v1:9; signed long long v2:9; unsigned short v3:9; unsigned short v4:9; };
struct BFu9ll_BFs9s { unsigned long long v1:9; signed short v2:9; };
struct BFu9ll_BFs9s_BFs9i { unsigned long long v1:9; signed short v2:9; signed int v3:9; };
struct BFu9ll_BFs9s_BFs9i_BFs9i { unsigned long long v1:9; signed short v2:9; signed int v3:9; signed int v4:9; };
struct BFu9ll_BFs9s_BFs9i_BFs9ll { unsigned long long v1:9; signed short v2:9; signed int v3:9; signed long long v4:9; };
struct BFu9ll_BFs9s_BFs9i_BFs9s { unsigned long long v1:9; signed short v2:9; signed int v3:9; signed short v4:9; };
struct BFu9ll_BFs9s_BFs9i_BFu9i { unsigned long long v1:9; signed short v2:9; signed int v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9s_BFs9i_BFu9ll { unsigned long long v1:9; signed short v2:9; signed int v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9s_BFs9i_BFu9s { unsigned long long v1:9; signed short v2:9; signed int v3:9; unsigned short v4:9; };
struct BFu9ll_BFs9s_BFs9ll { unsigned long long v1:9; signed short v2:9; signed long long v3:9; };
struct BFu9ll_BFs9s_BFs9ll_BFs9i { unsigned long long v1:9; signed short v2:9; signed long long v3:9; signed int v4:9; };
struct BFu9ll_BFs9s_BFs9ll_BFs9ll { unsigned long long v1:9; signed short v2:9; signed long long v3:9; signed long long v4:9; };
struct BFu9ll_BFs9s_BFs9ll_BFs9s { unsigned long long v1:9; signed short v2:9; signed long long v3:9; signed short v4:9; };
struct BFu9ll_BFs9s_BFs9ll_BFu9i { unsigned long long v1:9; signed short v2:9; signed long long v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9s_BFs9ll_BFu9ll { unsigned long long v1:9; signed short v2:9; signed long long v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9s_BFs9ll_BFu9s { unsigned long long v1:9; signed short v2:9; signed long long v3:9; unsigned short v4:9; };
struct BFu9ll_BFs9s_BFs9s { unsigned long long v1:9; signed short v2:9; signed short v3:9; };
struct BFu9ll_BFs9s_BFs9s_BFs9i { unsigned long long v1:9; signed short v2:9; signed short v3:9; signed int v4:9; };
struct BFu9ll_BFs9s_BFs9s_BFs9ll { unsigned long long v1:9; signed short v2:9; signed short v3:9; signed long long v4:9; };
struct BFu9ll_BFs9s_BFs9s_BFs9s { unsigned long long v1:9; signed short v2:9; signed short v3:9; signed short v4:9; };
struct BFu9ll_BFs9s_BFs9s_BFu9i { unsigned long long v1:9; signed short v2:9; signed short v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9s_BFs9s_BFu9ll { unsigned long long v1:9; signed short v2:9; signed short v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9s_BFs9s_BFu9s { unsigned long long v1:9; signed short v2:9; signed short v3:9; unsigned short v4:9; };
struct BFu9ll_BFs9s_BFu9i { unsigned long long v1:9; signed short v2:9; unsigned int v3:9; };
struct BFu9ll_BFs9s_BFu9i_BFs9i { unsigned long long v1:9; signed short v2:9; unsigned int v3:9; signed int v4:9; };
struct BFu9ll_BFs9s_BFu9i_BFs9ll { unsigned long long v1:9; signed short v2:9; unsigned int v3:9; signed long long v4:9; };
struct BFu9ll_BFs9s_BFu9i_BFs9s { unsigned long long v1:9; signed short v2:9; unsigned int v3:9; signed short v4:9; };
struct BFu9ll_BFs9s_BFu9i_BFu9i { unsigned long long v1:9; signed short v2:9; unsigned int v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9s_BFu9i_BFu9ll { unsigned long long v1:9; signed short v2:9; unsigned int v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9s_BFu9i_BFu9s { unsigned long long v1:9; signed short v2:9; unsigned int v3:9; unsigned short v4:9; };
struct BFu9ll_BFs9s_BFu9ll { unsigned long long v1:9; signed short v2:9; unsigned long long v3:9; };
struct BFu9ll_BFs9s_BFu9ll_BFs9i { unsigned long long v1:9; signed short v2:9; unsigned long long v3:9; signed int v4:9; };
struct BFu9ll_BFs9s_BFu9ll_BFs9ll { unsigned long long v1:9; signed short v2:9; unsigned long long v3:9; signed long long v4:9; };
struct BFu9ll_BFs9s_BFu9ll_BFs9s { unsigned long long v1:9; signed short v2:9; unsigned long long v3:9; signed short v4:9; };
struct BFu9ll_BFs9s_BFu9ll_BFu9i { unsigned long long v1:9; signed short v2:9; unsigned long long v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9s_BFu9ll_BFu9ll { unsigned long long v1:9; signed short v2:9; unsigned long long v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9s_BFu9ll_BFu9s { unsigned long long v1:9; signed short v2:9; unsigned long long v3:9; unsigned short v4:9; };
struct BFu9ll_BFs9s_BFu9s { unsigned long long v1:9; signed short v2:9; unsigned short v3:9; };
struct BFu9ll_BFs9s_BFu9s_BFs9i { unsigned long long v1:9; signed short v2:9; unsigned short v3:9; signed int v4:9; };
struct BFu9ll_BFs9s_BFu9s_BFs9ll { unsigned long long v1:9; signed short v2:9; unsigned short v3:9; signed long long v4:9; };
struct BFu9ll_BFs9s_BFu9s_BFs9s { unsigned long long v1:9; signed short v2:9; unsigned short v3:9; signed short v4:9; };
struct BFu9ll_BFs9s_BFu9s_BFu9i { unsigned long long v1:9; signed short v2:9; unsigned short v3:9; unsigned int v4:9; };
struct BFu9ll_BFs9s_BFu9s_BFu9ll { unsigned long long v1:9; signed short v2:9; unsigned short v3:9; unsigned long long v4:9; };
struct BFu9ll_BFs9s_BFu9s_BFu9s { unsigned long long v1:9; signed short v2:9; unsigned short v3:9; unsigned short v4:9; };
struct BFu9ll_BFu15i { unsigned long long v1:9; unsigned int v2:15; };
struct BFu9ll_BFu15i_BFu15i { unsigned long long v1:9; unsigned int v2:15; unsigned int v3:15; };
struct BFu9ll_BFu15i_BFu15ll { unsigned long long v1:9; unsigned int v2:15; unsigned long long v3:15; };
struct BFu9ll_BFu15i_BFu15s { unsigned long long v1:9; unsigned int v2:15; unsigned short v3:15; };
struct BFu9ll_BFu15i_BFu16i { unsigned long long v1:9; unsigned int v2:15; unsigned int v3:16; };
struct BFu9ll_BFu15i_BFu16ll { unsigned long long v1:9; unsigned int v2:15; unsigned long long v3:16; };
struct BFu9ll_BFu15i_BFu16s { unsigned long long v1:9; unsigned int v2:15; unsigned short v3:16; };
struct BFu9ll_BFu15i_BFu17i { unsigned long long v1:9; unsigned int v2:15; unsigned int v3:17; };
struct BFu9ll_BFu15i_BFu17ll { unsigned long long v1:9; unsigned int v2:15; unsigned long long v3:17; };
struct BFu9ll_BFu15i_BFu1c { unsigned long long v1:9; unsigned int v2:15; unsigned char v3:1; };
struct BFu9ll_BFu15i_BFu1i { unsigned long long v1:9; unsigned int v2:15; unsigned int v3:1; };
struct BFu9ll_BFu15i_BFu1ll { unsigned long long v1:9; unsigned int v2:15; unsigned long long v3:1; };
struct BFu9ll_BFu15i_BFu1s { unsigned long long v1:9; unsigned int v2:15; unsigned short v3:1; };
struct BFu9ll_BFu15i_BFu31i { unsigned long long v1:9; unsigned int v2:15; unsigned int v3:31; };
struct BFu9ll_BFu15i_BFu31ll { unsigned long long v1:9; unsigned int v2:15; unsigned long long v3:31; };
struct BFu9ll_BFu15i_BFu32i { unsigned long long v1:9; unsigned int v2:15; unsigned int v3:32; };
struct BFu9ll_BFu15i_BFu32ll { unsigned long long v1:9; unsigned int v2:15; unsigned long long v3:32; };
struct BFu9ll_BFu15i_BFu33 { unsigned long long v1:9; unsigned int v2:15; unsigned long long v3:33; };
struct BFu9ll_BFu15i_BFu7c { unsigned long long v1:9; unsigned int v2:15; unsigned char v3:7; };
struct BFu9ll_BFu15i_BFu7i { unsigned long long v1:9; unsigned int v2:15; unsigned int v3:7; };
struct BFu9ll_BFu15i_BFu7ll { unsigned long long v1:9; unsigned int v2:15; unsigned long long v3:7; };
struct BFu9ll_BFu15i_BFu7s { unsigned long long v1:9; unsigned int v2:15; unsigned short v3:7; };
struct BFu9ll_BFu15i_BFu8c { unsigned long long v1:9; unsigned int v2:15; unsigned char v3:8; };
struct BFu9ll_BFu15i_BFu8i { unsigned long long v1:9; unsigned int v2:15; unsigned int v3:8; };
struct BFu9ll_BFu15i_BFu8ll { unsigned long long v1:9; unsigned int v2:15; unsigned long long v3:8; };
struct BFu9ll_BFu15i_BFu8s { unsigned long long v1:9; unsigned int v2:15; unsigned short v3:8; };
struct BFu9ll_BFu15i_BFu9i { unsigned long long v1:9; unsigned int v2:15; unsigned int v3:9; };
struct BFu9ll_BFu15i_BFu9ll { unsigned long long v1:9; unsigned int v2:15; unsigned long long v3:9; };
struct BFu9ll_BFu15i_BFu9s { unsigned long long v1:9; unsigned int v2:15; unsigned short v3:9; };
struct BFu9ll_BFu15i_C { unsigned long long v1:9; unsigned int v2:15; char v3; };
struct BFu9ll_BFu15i_D { unsigned long long v1:9; unsigned int v2:15; double v3; };
struct BFu9ll_BFu15i_F { unsigned long long v1:9; unsigned int v2:15; float v3; };
struct BFu9ll_BFu15i_I { unsigned long long v1:9; unsigned int v2:15; int v3; };
struct BFu9ll_BFu15i_Ip { unsigned long long v1:9; unsigned int v2:15; int * v3; };
struct BFu9ll_BFu15i_L { unsigned long long v1:9; unsigned int v2:15; long long v3; };
struct BFu9ll_BFu15i_S { unsigned long long v1:9; unsigned int v2:15; short v3; };
struct BFu9ll_BFu15i_Uc { unsigned long long v1:9; unsigned int v2:15; unsigned char v3; };
struct BFu9ll_BFu15i_Ui { unsigned long long v1:9; unsigned int v2:15; unsigned int v3; };
struct BFu9ll_BFu15i_Ul { unsigned long long v1:9; unsigned int v2:15; unsigned long long v3; };
struct BFu9ll_BFu15i_Us { unsigned long long v1:9; unsigned int v2:15; unsigned short v3; };
struct BFu9ll_BFu15i_Vp { unsigned long long v1:9; unsigned int v2:15; void * v3; };
struct BFu9ll_BFu15ll { unsigned long long v1:9; unsigned long long v2:15; };
struct BFu9ll_BFu15ll_BFu15i { unsigned long long v1:9; unsigned long long v2:15; unsigned int v3:15; };
struct BFu9ll_BFu15ll_BFu15ll { unsigned long long v1:9; unsigned long long v2:15; unsigned long long v3:15; };
struct BFu9ll_BFu15ll_BFu15s { unsigned long long v1:9; unsigned long long v2:15; unsigned short v3:15; };
struct BFu9ll_BFu15ll_BFu16i { unsigned long long v1:9; unsigned long long v2:15; unsigned int v3:16; };
struct BFu9ll_BFu15ll_BFu16ll { unsigned long long v1:9; unsigned long long v2:15; unsigned long long v3:16; };
struct BFu9ll_BFu15ll_BFu16s { unsigned long long v1:9; unsigned long long v2:15; unsigned short v3:16; };
struct BFu9ll_BFu15ll_BFu17i { unsigned long long v1:9; unsigned long long v2:15; unsigned int v3:17; };
struct BFu9ll_BFu15ll_BFu17ll { unsigned long long v1:9; unsigned long long v2:15; unsigned long long v3:17; };
struct BFu9ll_BFu15ll_BFu1c { unsigned long long v1:9; unsigned long long v2:15; unsigned char v3:1; };
struct BFu9ll_BFu15ll_BFu1i { unsigned long long v1:9; unsigned long long v2:15; unsigned int v3:1; };
struct BFu9ll_BFu15ll_BFu1ll { unsigned long long v1:9; unsigned long long v2:15; unsigned long long v3:1; };
struct BFu9ll_BFu15ll_BFu1s { unsigned long long v1:9; unsigned long long v2:15; unsigned short v3:1; };
struct BFu9ll_BFu15ll_BFu31i { unsigned long long v1:9; unsigned long long v2:15; unsigned int v3:31; };
struct BFu9ll_BFu15ll_BFu31ll { unsigned long long v1:9; unsigned long long v2:15; unsigned long long v3:31; };
struct BFu9ll_BFu15ll_BFu32i { unsigned long long v1:9; unsigned long long v2:15; unsigned int v3:32; };
struct BFu9ll_BFu15ll_BFu32ll { unsigned long long v1:9; unsigned long long v2:15; unsigned long long v3:32; };
struct BFu9ll_BFu15ll_BFu33 { unsigned long long v1:9; unsigned long long v2:15; unsigned long long v3:33; };
struct BFu9ll_BFu15ll_BFu7c { unsigned long long v1:9; unsigned long long v2:15; unsigned char v3:7; };
struct BFu9ll_BFu15ll_BFu7i { unsigned long long v1:9; unsigned long long v2:15; unsigned int v3:7; };
struct BFu9ll_BFu15ll_BFu7ll { unsigned long long v1:9; unsigned long long v2:15; unsigned long long v3:7; };
struct BFu9ll_BFu15ll_BFu7s { unsigned long long v1:9; unsigned long long v2:15; unsigned short v3:7; };
struct BFu9ll_BFu15ll_BFu8c { unsigned long long v1:9; unsigned long long v2:15; unsigned char v3:8; };
struct BFu9ll_BFu15ll_BFu8i { unsigned long long v1:9; unsigned long long v2:15; unsigned int v3:8; };
struct BFu9ll_BFu15ll_BFu8ll { unsigned long long v1:9; unsigned long long v2:15; unsigned long long v3:8; };
struct BFu9ll_BFu15ll_BFu8s { unsigned long long v1:9; unsigned long long v2:15; unsigned short v3:8; };
struct BFu9ll_BFu15ll_BFu9i { unsigned long long v1:9; unsigned long long v2:15; unsigned int v3:9; };
struct BFu9ll_BFu15ll_BFu9ll { unsigned long long v1:9; unsigned long long v2:15; unsigned long long v3:9; };
struct BFu9ll_BFu15ll_BFu9s { unsigned long long v1:9; unsigned long long v2:15; unsigned short v3:9; };
struct BFu9ll_BFu15ll_C { unsigned long long v1:9; unsigned long long v2:15; char v3; };
struct BFu9ll_BFu15ll_D { unsigned long long v1:9; unsigned long long v2:15; double v3; };
struct BFu9ll_BFu15ll_F { unsigned long long v1:9; unsigned long long v2:15; float v3; };
struct BFu9ll_BFu15ll_I { unsigned long long v1:9; unsigned long long v2:15; int v3; };
struct BFu9ll_BFu15ll_Ip { unsigned long long v1:9; unsigned long long v2:15; int * v3; };
struct BFu9ll_BFu15ll_L { unsigned long long v1:9; unsigned long long v2:15; long long v3; };
struct BFu9ll_BFu15ll_S { unsigned long long v1:9; unsigned long long v2:15; short v3; };
struct BFu9ll_BFu15ll_Uc { unsigned long long v1:9; unsigned long long v2:15; unsigned char v3; };
struct BFu9ll_BFu15ll_Ui { unsigned long long v1:9; unsigned long long v2:15; unsigned int v3; };
struct BFu9ll_BFu15ll_Ul { unsigned long long v1:9; unsigned long long v2:15; unsigned long long v3; };
struct BFu9ll_BFu15ll_Us { unsigned long long v1:9; unsigned long long v2:15; unsigned short v3; };
struct BFu9ll_BFu15ll_Vp { unsigned long long v1:9; unsigned long long v2:15; void * v3; };
struct BFu9ll_BFu15s { unsigned long long v1:9; unsigned short v2:15; };
struct BFu9ll_BFu15s_BFu15i { unsigned long long v1:9; unsigned short v2:15; unsigned int v3:15; };
struct BFu9ll_BFu15s_BFu15ll { unsigned long long v1:9; unsigned short v2:15; unsigned long long v3:15; };
struct BFu9ll_BFu15s_BFu15s { unsigned long long v1:9; unsigned short v2:15; unsigned short v3:15; };
struct BFu9ll_BFu15s_BFu16i { unsigned long long v1:9; unsigned short v2:15; unsigned int v3:16; };
struct BFu9ll_BFu15s_BFu16ll { unsigned long long v1:9; unsigned short v2:15; unsigned long long v3:16; };
struct BFu9ll_BFu15s_BFu16s { unsigned long long v1:9; unsigned short v2:15; unsigned short v3:16; };
struct BFu9ll_BFu15s_BFu17i { unsigned long long v1:9; unsigned short v2:15; unsigned int v3:17; };
struct BFu9ll_BFu15s_BFu17ll { unsigned long long v1:9; unsigned short v2:15; unsigned long long v3:17; };
struct BFu9ll_BFu15s_BFu1c { unsigned long long v1:9; unsigned short v2:15; unsigned char v3:1; };
struct BFu9ll_BFu15s_BFu1i { unsigned long long v1:9; unsigned short v2:15; unsigned int v3:1; };
struct BFu9ll_BFu15s_BFu1ll { unsigned long long v1:9; unsigned short v2:15; unsigned long long v3:1; };
struct BFu9ll_BFu15s_BFu1s { unsigned long long v1:9; unsigned short v2:15; unsigned short v3:1; };
struct BFu9ll_BFu15s_BFu31i { unsigned long long v1:9; unsigned short v2:15; unsigned int v3:31; };
struct BFu9ll_BFu15s_BFu31ll { unsigned long long v1:9; unsigned short v2:15; unsigned long long v3:31; };
struct BFu9ll_BFu15s_BFu32i { unsigned long long v1:9; unsigned short v2:15; unsigned int v3:32; };
struct BFu9ll_BFu15s_BFu32ll { unsigned long long v1:9; unsigned short v2:15; unsigned long long v3:32; };
struct BFu9ll_BFu15s_BFu33 { unsigned long long v1:9; unsigned short v2:15; unsigned long long v3:33; };
struct BFu9ll_BFu15s_BFu7c { unsigned long long v1:9; unsigned short v2:15; unsigned char v3:7; };
struct BFu9ll_BFu15s_BFu7i { unsigned long long v1:9; unsigned short v2:15; unsigned int v3:7; };
struct BFu9ll_BFu15s_BFu7ll { unsigned long long v1:9; unsigned short v2:15; unsigned long long v3:7; };
struct BFu9ll_BFu15s_BFu7s { unsigned long long v1:9; unsigned short v2:15; unsigned short v3:7; };
struct BFu9ll_BFu15s_BFu8c { unsigned long long v1:9; unsigned short v2:15; unsigned char v3:8; };
struct BFu9ll_BFu15s_BFu8i { unsigned long long v1:9; unsigned short v2:15; unsigned int v3:8; };
struct BFu9ll_BFu15s_BFu8ll { unsigned long long v1:9; unsigned short v2:15; unsigned long long v3:8; };
struct BFu9ll_BFu15s_BFu8s { unsigned long long v1:9; unsigned short v2:15; unsigned short v3:8; };
struct BFu9ll_BFu15s_BFu9i { unsigned long long v1:9; unsigned short v2:15; unsigned int v3:9; };
struct BFu9ll_BFu15s_BFu9ll { unsigned long long v1:9; unsigned short v2:15; unsigned long long v3:9; };
struct BFu9ll_BFu15s_BFu9s { unsigned long long v1:9; unsigned short v2:15; unsigned short v3:9; };
struct BFu9ll_BFu15s_C { unsigned long long v1:9; unsigned short v2:15; char v3; };
struct BFu9ll_BFu15s_D { unsigned long long v1:9; unsigned short v2:15; double v3; };
struct BFu9ll_BFu15s_F { unsigned long long v1:9; unsigned short v2:15; float v3; };
struct BFu9ll_BFu15s_I { unsigned long long v1:9; unsigned short v2:15; int v3; };
struct BFu9ll_BFu15s_Ip { unsigned long long v1:9; unsigned short v2:15; int * v3; };
struct BFu9ll_BFu15s_L { unsigned long long v1:9; unsigned short v2:15; long long v3; };
struct BFu9ll_BFu15s_S { unsigned long long v1:9; unsigned short v2:15; short v3; };
struct BFu9ll_BFu15s_Uc { unsigned long long v1:9; unsigned short v2:15; unsigned char v3; };
struct BFu9ll_BFu15s_Ui { unsigned long long v1:9; unsigned short v2:15; unsigned int v3; };
struct BFu9ll_BFu15s_Ul { unsigned long long v1:9; unsigned short v2:15; unsigned long long v3; };
struct BFu9ll_BFu15s_Us { unsigned long long v1:9; unsigned short v2:15; unsigned short v3; };
struct BFu9ll_BFu15s_Vp { unsigned long long v1:9; unsigned short v2:15; void * v3; };
struct BFu9ll_BFu16i { unsigned long long v1:9; unsigned int v2:16; };
struct BFu9ll_BFu16i_BFu15i { unsigned long long v1:9; unsigned int v2:16; unsigned int v3:15; };
struct BFu9ll_BFu16i_BFu15ll { unsigned long long v1:9; unsigned int v2:16; unsigned long long v3:15; };
struct BFu9ll_BFu16i_BFu15s { unsigned long long v1:9; unsigned int v2:16; unsigned short v3:15; };
struct BFu9ll_BFu16i_BFu16i { unsigned long long v1:9; unsigned int v2:16; unsigned int v3:16; };
struct BFu9ll_BFu16i_BFu16ll { unsigned long long v1:9; unsigned int v2:16; unsigned long long v3:16; };
struct BFu9ll_BFu16i_BFu16s { unsigned long long v1:9; unsigned int v2:16; unsigned short v3:16; };
struct BFu9ll_BFu16i_BFu17i { unsigned long long v1:9; unsigned int v2:16; unsigned int v3:17; };
struct BFu9ll_BFu16i_BFu17ll { unsigned long long v1:9; unsigned int v2:16; unsigned long long v3:17; };
struct BFu9ll_BFu16i_BFu1c { unsigned long long v1:9; unsigned int v2:16; unsigned char v3:1; };
struct BFu9ll_BFu16i_BFu1i { unsigned long long v1:9; unsigned int v2:16; unsigned int v3:1; };
struct BFu9ll_BFu16i_BFu1ll { unsigned long long v1:9; unsigned int v2:16; unsigned long long v3:1; };
struct BFu9ll_BFu16i_BFu1s { unsigned long long v1:9; unsigned int v2:16; unsigned short v3:1; };
struct BFu9ll_BFu16i_BFu31i { unsigned long long v1:9; unsigned int v2:16; unsigned int v3:31; };
struct BFu9ll_BFu16i_BFu31ll { unsigned long long v1:9; unsigned int v2:16; unsigned long long v3:31; };
struct BFu9ll_BFu16i_BFu32i { unsigned long long v1:9; unsigned int v2:16; unsigned int v3:32; };
struct BFu9ll_BFu16i_BFu32ll { unsigned long long v1:9; unsigned int v2:16; unsigned long long v3:32; };
struct BFu9ll_BFu16i_BFu33 { unsigned long long v1:9; unsigned int v2:16; unsigned long long v3:33; };
struct BFu9ll_BFu16i_BFu7c { unsigned long long v1:9; unsigned int v2:16; unsigned char v3:7; };
struct BFu9ll_BFu16i_BFu7i { unsigned long long v1:9; unsigned int v2:16; unsigned int v3:7; };
struct BFu9ll_BFu16i_BFu7ll { unsigned long long v1:9; unsigned int v2:16; unsigned long long v3:7; };
struct BFu9ll_BFu16i_BFu7s { unsigned long long v1:9; unsigned int v2:16; unsigned short v3:7; };
struct BFu9ll_BFu16i_BFu8c { unsigned long long v1:9; unsigned int v2:16; unsigned char v3:8; };
struct BFu9ll_BFu16i_BFu8i { unsigned long long v1:9; unsigned int v2:16; unsigned int v3:8; };
struct BFu9ll_BFu16i_BFu8ll { unsigned long long v1:9; unsigned int v2:16; unsigned long long v3:8; };
struct BFu9ll_BFu16i_BFu8s { unsigned long long v1:9; unsigned int v2:16; unsigned short v3:8; };
struct BFu9ll_BFu16i_BFu9i { unsigned long long v1:9; unsigned int v2:16; unsigned int v3:9; };
struct BFu9ll_BFu16i_BFu9ll { unsigned long long v1:9; unsigned int v2:16; unsigned long long v3:9; };
struct BFu9ll_BFu16i_BFu9s { unsigned long long v1:9; unsigned int v2:16; unsigned short v3:9; };
struct BFu9ll_BFu16i_C { unsigned long long v1:9; unsigned int v2:16; char v3; };
struct BFu9ll_BFu16i_D { unsigned long long v1:9; unsigned int v2:16; double v3; };
struct BFu9ll_BFu16i_F { unsigned long long v1:9; unsigned int v2:16; float v3; };
struct BFu9ll_BFu16i_I { unsigned long long v1:9; unsigned int v2:16; int v3; };
struct BFu9ll_BFu16i_Ip { unsigned long long v1:9; unsigned int v2:16; int * v3; };
struct BFu9ll_BFu16i_L { unsigned long long v1:9; unsigned int v2:16; long long v3; };
struct BFu9ll_BFu16i_S { unsigned long long v1:9; unsigned int v2:16; short v3; };
struct BFu9ll_BFu16i_Uc { unsigned long long v1:9; unsigned int v2:16; unsigned char v3; };
struct BFu9ll_BFu16i_Ui { unsigned long long v1:9; unsigned int v2:16; unsigned int v3; };
struct BFu9ll_BFu16i_Ul { unsigned long long v1:9; unsigned int v2:16; unsigned long long v3; };
struct BFu9ll_BFu16i_Us { unsigned long long v1:9; unsigned int v2:16; unsigned short v3; };
struct BFu9ll_BFu16i_Vp { unsigned long long v1:9; unsigned int v2:16; void * v3; };
struct BFu9ll_BFu16ll { unsigned long long v1:9; unsigned long long v2:16; };
struct BFu9ll_BFu16ll_BFu15i { unsigned long long v1:9; unsigned long long v2:16; unsigned int v3:15; };
struct BFu9ll_BFu16ll_BFu15ll { unsigned long long v1:9; unsigned long long v2:16; unsigned long long v3:15; };
struct BFu9ll_BFu16ll_BFu15s { unsigned long long v1:9; unsigned long long v2:16; unsigned short v3:15; };
struct BFu9ll_BFu16ll_BFu16i { unsigned long long v1:9; unsigned long long v2:16; unsigned int v3:16; };
struct BFu9ll_BFu16ll_BFu16ll { unsigned long long v1:9; unsigned long long v2:16; unsigned long long v3:16; };
struct BFu9ll_BFu16ll_BFu16s { unsigned long long v1:9; unsigned long long v2:16; unsigned short v3:16; };
struct BFu9ll_BFu16ll_BFu17i { unsigned long long v1:9; unsigned long long v2:16; unsigned int v3:17; };
struct BFu9ll_BFu16ll_BFu17ll { unsigned long long v1:9; unsigned long long v2:16; unsigned long long v3:17; };
struct BFu9ll_BFu16ll_BFu1c { unsigned long long v1:9; unsigned long long v2:16; unsigned char v3:1; };
struct BFu9ll_BFu16ll_BFu1i { unsigned long long v1:9; unsigned long long v2:16; unsigned int v3:1; };
struct BFu9ll_BFu16ll_BFu1ll { unsigned long long v1:9; unsigned long long v2:16; unsigned long long v3:1; };
struct BFu9ll_BFu16ll_BFu1s { unsigned long long v1:9; unsigned long long v2:16; unsigned short v3:1; };
struct BFu9ll_BFu16ll_BFu31i { unsigned long long v1:9; unsigned long long v2:16; unsigned int v3:31; };
struct BFu9ll_BFu16ll_BFu31ll { unsigned long long v1:9; unsigned long long v2:16; unsigned long long v3:31; };
struct BFu9ll_BFu16ll_BFu32i { unsigned long long v1:9; unsigned long long v2:16; unsigned int v3:32; };
struct BFu9ll_BFu16ll_BFu32ll { unsigned long long v1:9; unsigned long long v2:16; unsigned long long v3:32; };
struct BFu9ll_BFu16ll_BFu33 { unsigned long long v1:9; unsigned long long v2:16; unsigned long long v3:33; };
struct BFu9ll_BFu16ll_BFu7c { unsigned long long v1:9; unsigned long long v2:16; unsigned char v3:7; };
struct BFu9ll_BFu16ll_BFu7i { unsigned long long v1:9; unsigned long long v2:16; unsigned int v3:7; };
struct BFu9ll_BFu16ll_BFu7ll { unsigned long long v1:9; unsigned long long v2:16; unsigned long long v3:7; };
struct BFu9ll_BFu16ll_BFu7s { unsigned long long v1:9; unsigned long long v2:16; unsigned short v3:7; };
struct BFu9ll_BFu16ll_BFu8c { unsigned long long v1:9; unsigned long long v2:16; unsigned char v3:8; };
struct BFu9ll_BFu16ll_BFu8i { unsigned long long v1:9; unsigned long long v2:16; unsigned int v3:8; };
struct BFu9ll_BFu16ll_BFu8ll { unsigned long long v1:9; unsigned long long v2:16; unsigned long long v3:8; };
struct BFu9ll_BFu16ll_BFu8s { unsigned long long v1:9; unsigned long long v2:16; unsigned short v3:8; };
struct BFu9ll_BFu16ll_BFu9i { unsigned long long v1:9; unsigned long long v2:16; unsigned int v3:9; };
struct BFu9ll_BFu16ll_BFu9ll { unsigned long long v1:9; unsigned long long v2:16; unsigned long long v3:9; };
struct BFu9ll_BFu16ll_BFu9s { unsigned long long v1:9; unsigned long long v2:16; unsigned short v3:9; };
struct BFu9ll_BFu16ll_C { unsigned long long v1:9; unsigned long long v2:16; char v3; };
struct BFu9ll_BFu16ll_D { unsigned long long v1:9; unsigned long long v2:16; double v3; };
struct BFu9ll_BFu16ll_F { unsigned long long v1:9; unsigned long long v2:16; float v3; };
struct BFu9ll_BFu16ll_I { unsigned long long v1:9; unsigned long long v2:16; int v3; };
struct BFu9ll_BFu16ll_Ip { unsigned long long v1:9; unsigned long long v2:16; int * v3; };
struct BFu9ll_BFu16ll_L { unsigned long long v1:9; unsigned long long v2:16; long long v3; };
struct BFu9ll_BFu16ll_S { unsigned long long v1:9; unsigned long long v2:16; short v3; };
struct BFu9ll_BFu16ll_Uc { unsigned long long v1:9; unsigned long long v2:16; unsigned char v3; };
struct BFu9ll_BFu16ll_Ui { unsigned long long v1:9; unsigned long long v2:16; unsigned int v3; };
struct BFu9ll_BFu16ll_Ul { unsigned long long v1:9; unsigned long long v2:16; unsigned long long v3; };
struct BFu9ll_BFu16ll_Us { unsigned long long v1:9; unsigned long long v2:16; unsigned short v3; };
struct BFu9ll_BFu16ll_Vp { unsigned long long v1:9; unsigned long long v2:16; void * v3; };
struct BFu9ll_BFu16s { unsigned long long v1:9; unsigned short v2:16; };
struct BFu9ll_BFu16s_BFu15i { unsigned long long v1:9; unsigned short v2:16; unsigned int v3:15; };
struct BFu9ll_BFu16s_BFu15ll { unsigned long long v1:9; unsigned short v2:16; unsigned long long v3:15; };
struct BFu9ll_BFu16s_BFu15s { unsigned long long v1:9; unsigned short v2:16; unsigned short v3:15; };
struct BFu9ll_BFu16s_BFu16i { unsigned long long v1:9; unsigned short v2:16; unsigned int v3:16; };
struct BFu9ll_BFu16s_BFu16ll { unsigned long long v1:9; unsigned short v2:16; unsigned long long v3:16; };
struct BFu9ll_BFu16s_BFu16s { unsigned long long v1:9; unsigned short v2:16; unsigned short v3:16; };
struct BFu9ll_BFu16s_BFu17i { unsigned long long v1:9; unsigned short v2:16; unsigned int v3:17; };
struct BFu9ll_BFu16s_BFu17ll { unsigned long long v1:9; unsigned short v2:16; unsigned long long v3:17; };
struct BFu9ll_BFu16s_BFu1c { unsigned long long v1:9; unsigned short v2:16; unsigned char v3:1; };
struct BFu9ll_BFu16s_BFu1i { unsigned long long v1:9; unsigned short v2:16; unsigned int v3:1; };
struct BFu9ll_BFu16s_BFu1ll { unsigned long long v1:9; unsigned short v2:16; unsigned long long v3:1; };
struct BFu9ll_BFu16s_BFu1s { unsigned long long v1:9; unsigned short v2:16; unsigned short v3:1; };
struct BFu9ll_BFu16s_BFu31i { unsigned long long v1:9; unsigned short v2:16; unsigned int v3:31; };
struct BFu9ll_BFu16s_BFu31ll { unsigned long long v1:9; unsigned short v2:16; unsigned long long v3:31; };
struct BFu9ll_BFu16s_BFu32i { unsigned long long v1:9; unsigned short v2:16; unsigned int v3:32; };
struct BFu9ll_BFu16s_BFu32ll { unsigned long long v1:9; unsigned short v2:16; unsigned long long v3:32; };
struct BFu9ll_BFu16s_BFu33 { unsigned long long v1:9; unsigned short v2:16; unsigned long long v3:33; };
struct BFu9ll_BFu16s_BFu7c { unsigned long long v1:9; unsigned short v2:16; unsigned char v3:7; };
struct BFu9ll_BFu16s_BFu7i { unsigned long long v1:9; unsigned short v2:16; unsigned int v3:7; };
struct BFu9ll_BFu16s_BFu7ll { unsigned long long v1:9; unsigned short v2:16; unsigned long long v3:7; };
struct BFu9ll_BFu16s_BFu7s { unsigned long long v1:9; unsigned short v2:16; unsigned short v3:7; };
struct BFu9ll_BFu16s_BFu8c { unsigned long long v1:9; unsigned short v2:16; unsigned char v3:8; };
struct BFu9ll_BFu16s_BFu8i { unsigned long long v1:9; unsigned short v2:16; unsigned int v3:8; };
struct BFu9ll_BFu16s_BFu8ll { unsigned long long v1:9; unsigned short v2:16; unsigned long long v3:8; };
struct BFu9ll_BFu16s_BFu8s { unsigned long long v1:9; unsigned short v2:16; unsigned short v3:8; };
struct BFu9ll_BFu16s_BFu9i { unsigned long long v1:9; unsigned short v2:16; unsigned int v3:9; };
struct BFu9ll_BFu16s_BFu9ll { unsigned long long v1:9; unsigned short v2:16; unsigned long long v3:9; };
struct BFu9ll_BFu16s_BFu9s { unsigned long long v1:9; unsigned short v2:16; unsigned short v3:9; };
struct BFu9ll_BFu16s_C { unsigned long long v1:9; unsigned short v2:16; char v3; };
struct BFu9ll_BFu16s_D { unsigned long long v1:9; unsigned short v2:16; double v3; };
struct BFu9ll_BFu16s_F { unsigned long long v1:9; unsigned short v2:16; float v3; };
struct BFu9ll_BFu16s_I { unsigned long long v1:9; unsigned short v2:16; int v3; };
struct BFu9ll_BFu16s_Ip { unsigned long long v1:9; unsigned short v2:16; int * v3; };
struct BFu9ll_BFu16s_L { unsigned long long v1:9; unsigned short v2:16; long long v3; };
struct BFu9ll_BFu16s_S { unsigned long long v1:9; unsigned short v2:16; short v3; };
struct BFu9ll_BFu16s_Uc { unsigned long long v1:9; unsigned short v2:16; unsigned char v3; };
struct BFu9ll_BFu16s_Ui { unsigned long long v1:9; unsigned short v2:16; unsigned int v3; };
struct BFu9ll_BFu16s_Ul { unsigned long long v1:9; unsigned short v2:16; unsigned long long v3; };
struct BFu9ll_BFu16s_Us { unsigned long long v1:9; unsigned short v2:16; unsigned short v3; };
struct BFu9ll_BFu16s_Vp { unsigned long long v1:9; unsigned short v2:16; void * v3; };
struct BFu9ll_BFu17i { unsigned long long v1:9; unsigned int v2:17; };
struct BFu9ll_BFu17i_BFu15i { unsigned long long v1:9; unsigned int v2:17; unsigned int v3:15; };
struct BFu9ll_BFu17i_BFu15ll { unsigned long long v1:9; unsigned int v2:17; unsigned long long v3:15; };
struct BFu9ll_BFu17i_BFu15s { unsigned long long v1:9; unsigned int v2:17; unsigned short v3:15; };
struct BFu9ll_BFu17i_BFu16i { unsigned long long v1:9; unsigned int v2:17; unsigned int v3:16; };
struct BFu9ll_BFu17i_BFu16ll { unsigned long long v1:9; unsigned int v2:17; unsigned long long v3:16; };
struct BFu9ll_BFu17i_BFu16s { unsigned long long v1:9; unsigned int v2:17; unsigned short v3:16; };
struct BFu9ll_BFu17i_BFu17i { unsigned long long v1:9; unsigned int v2:17; unsigned int v3:17; };
struct BFu9ll_BFu17i_BFu17ll { unsigned long long v1:9; unsigned int v2:17; unsigned long long v3:17; };
struct BFu9ll_BFu17i_BFu1c { unsigned long long v1:9; unsigned int v2:17; unsigned char v3:1; };
struct BFu9ll_BFu17i_BFu1i { unsigned long long v1:9; unsigned int v2:17; unsigned int v3:1; };
struct BFu9ll_BFu17i_BFu1ll { unsigned long long v1:9; unsigned int v2:17; unsigned long long v3:1; };
struct BFu9ll_BFu17i_BFu1s { unsigned long long v1:9; unsigned int v2:17; unsigned short v3:1; };
struct BFu9ll_BFu17i_BFu31i { unsigned long long v1:9; unsigned int v2:17; unsigned int v3:31; };
struct BFu9ll_BFu17i_BFu31ll { unsigned long long v1:9; unsigned int v2:17; unsigned long long v3:31; };
struct BFu9ll_BFu17i_BFu32i { unsigned long long v1:9; unsigned int v2:17; unsigned int v3:32; };
struct BFu9ll_BFu17i_BFu32ll { unsigned long long v1:9; unsigned int v2:17; unsigned long long v3:32; };
struct BFu9ll_BFu17i_BFu33 { unsigned long long v1:9; unsigned int v2:17; unsigned long long v3:33; };
struct BFu9ll_BFu17i_BFu7c { unsigned long long v1:9; unsigned int v2:17; unsigned char v3:7; };
struct BFu9ll_BFu17i_BFu7i { unsigned long long v1:9; unsigned int v2:17; unsigned int v3:7; };
struct BFu9ll_BFu17i_BFu7ll { unsigned long long v1:9; unsigned int v2:17; unsigned long long v3:7; };
struct BFu9ll_BFu17i_BFu7s { unsigned long long v1:9; unsigned int v2:17; unsigned short v3:7; };
struct BFu9ll_BFu17i_BFu8c { unsigned long long v1:9; unsigned int v2:17; unsigned char v3:8; };
struct BFu9ll_BFu17i_BFu8i { unsigned long long v1:9; unsigned int v2:17; unsigned int v3:8; };
struct BFu9ll_BFu17i_BFu8ll { unsigned long long v1:9; unsigned int v2:17; unsigned long long v3:8; };
struct BFu9ll_BFu17i_BFu8s { unsigned long long v1:9; unsigned int v2:17; unsigned short v3:8; };
struct BFu9ll_BFu17i_BFu9i { unsigned long long v1:9; unsigned int v2:17; unsigned int v3:9; };
struct BFu9ll_BFu17i_BFu9ll { unsigned long long v1:9; unsigned int v2:17; unsigned long long v3:9; };
struct BFu9ll_BFu17i_BFu9s { unsigned long long v1:9; unsigned int v2:17; unsigned short v3:9; };
struct BFu9ll_BFu17i_C { unsigned long long v1:9; unsigned int v2:17; char v3; };
struct BFu9ll_BFu17i_D { unsigned long long v1:9; unsigned int v2:17; double v3; };
struct BFu9ll_BFu17i_F { unsigned long long v1:9; unsigned int v2:17; float v3; };
struct BFu9ll_BFu17i_I { unsigned long long v1:9; unsigned int v2:17; int v3; };
struct BFu9ll_BFu17i_Ip { unsigned long long v1:9; unsigned int v2:17; int * v3; };
struct BFu9ll_BFu17i_L { unsigned long long v1:9; unsigned int v2:17; long long v3; };
struct BFu9ll_BFu17i_S { unsigned long long v1:9; unsigned int v2:17; short v3; };
struct BFu9ll_BFu17i_Uc { unsigned long long v1:9; unsigned int v2:17; unsigned char v3; };
struct BFu9ll_BFu17i_Ui { unsigned long long v1:9; unsigned int v2:17; unsigned int v3; };
struct BFu9ll_BFu17i_Ul { unsigned long long v1:9; unsigned int v2:17; unsigned long long v3; };
struct BFu9ll_BFu17i_Us { unsigned long long v1:9; unsigned int v2:17; unsigned short v3; };
struct BFu9ll_BFu17i_Vp { unsigned long long v1:9; unsigned int v2:17; void * v3; };
struct BFu9ll_BFu17ll { unsigned long long v1:9; unsigned long long v2:17; };
struct BFu9ll_BFu17ll_BFu15i { unsigned long long v1:9; unsigned long long v2:17; unsigned int v3:15; };
struct BFu9ll_BFu17ll_BFu15ll { unsigned long long v1:9; unsigned long long v2:17; unsigned long long v3:15; };
struct BFu9ll_BFu17ll_BFu15s { unsigned long long v1:9; unsigned long long v2:17; unsigned short v3:15; };
struct BFu9ll_BFu17ll_BFu16i { unsigned long long v1:9; unsigned long long v2:17; unsigned int v3:16; };
struct BFu9ll_BFu17ll_BFu16ll { unsigned long long v1:9; unsigned long long v2:17; unsigned long long v3:16; };
struct BFu9ll_BFu17ll_BFu16s { unsigned long long v1:9; unsigned long long v2:17; unsigned short v3:16; };
struct BFu9ll_BFu17ll_BFu17i { unsigned long long v1:9; unsigned long long v2:17; unsigned int v3:17; };
struct BFu9ll_BFu17ll_BFu17ll { unsigned long long v1:9; unsigned long long v2:17; unsigned long long v3:17; };
struct BFu9ll_BFu17ll_BFu1c { unsigned long long v1:9; unsigned long long v2:17; unsigned char v3:1; };
struct BFu9ll_BFu17ll_BFu1i { unsigned long long v1:9; unsigned long long v2:17; unsigned int v3:1; };
struct BFu9ll_BFu17ll_BFu1ll { unsigned long long v1:9; unsigned long long v2:17; unsigned long long v3:1; };
struct BFu9ll_BFu17ll_BFu1s { unsigned long long v1:9; unsigned long long v2:17; unsigned short v3:1; };
struct BFu9ll_BFu17ll_BFu31i { unsigned long long v1:9; unsigned long long v2:17; unsigned int v3:31; };
struct BFu9ll_BFu17ll_BFu31ll { unsigned long long v1:9; unsigned long long v2:17; unsigned long long v3:31; };
struct BFu9ll_BFu17ll_BFu32i { unsigned long long v1:9; unsigned long long v2:17; unsigned int v3:32; };
struct BFu9ll_BFu17ll_BFu32ll { unsigned long long v1:9; unsigned long long v2:17; unsigned long long v3:32; };
struct BFu9ll_BFu17ll_BFu33 { unsigned long long v1:9; unsigned long long v2:17; unsigned long long v3:33; };
struct BFu9ll_BFu17ll_BFu7c { unsigned long long v1:9; unsigned long long v2:17; unsigned char v3:7; };
struct BFu9ll_BFu17ll_BFu7i { unsigned long long v1:9; unsigned long long v2:17; unsigned int v3:7; };
struct BFu9ll_BFu17ll_BFu7ll { unsigned long long v1:9; unsigned long long v2:17; unsigned long long v3:7; };
struct BFu9ll_BFu17ll_BFu7s { unsigned long long v1:9; unsigned long long v2:17; unsigned short v3:7; };
struct BFu9ll_BFu17ll_BFu8c { unsigned long long v1:9; unsigned long long v2:17; unsigned char v3:8; };
struct BFu9ll_BFu17ll_BFu8i { unsigned long long v1:9; unsigned long long v2:17; unsigned int v3:8; };
struct BFu9ll_BFu17ll_BFu8ll { unsigned long long v1:9; unsigned long long v2:17; unsigned long long v3:8; };
struct BFu9ll_BFu17ll_BFu8s { unsigned long long v1:9; unsigned long long v2:17; unsigned short v3:8; };
struct BFu9ll_BFu17ll_BFu9i { unsigned long long v1:9; unsigned long long v2:17; unsigned int v3:9; };
struct BFu9ll_BFu17ll_BFu9ll { unsigned long long v1:9; unsigned long long v2:17; unsigned long long v3:9; };
struct BFu9ll_BFu17ll_BFu9s { unsigned long long v1:9; unsigned long long v2:17; unsigned short v3:9; };
struct BFu9ll_BFu17ll_C { unsigned long long v1:9; unsigned long long v2:17; char v3; };
struct BFu9ll_BFu17ll_D { unsigned long long v1:9; unsigned long long v2:17; double v3; };
struct BFu9ll_BFu17ll_F { unsigned long long v1:9; unsigned long long v2:17; float v3; };
struct BFu9ll_BFu17ll_I { unsigned long long v1:9; unsigned long long v2:17; int v3; };
struct BFu9ll_BFu17ll_Ip { unsigned long long v1:9; unsigned long long v2:17; int * v3; };
struct BFu9ll_BFu17ll_L { unsigned long long v1:9; unsigned long long v2:17; long long v3; };
struct BFu9ll_BFu17ll_S { unsigned long long v1:9; unsigned long long v2:17; short v3; };
struct BFu9ll_BFu17ll_Uc { unsigned long long v1:9; unsigned long long v2:17; unsigned char v3; };


static void Test_BFu8s_BFu8s_BFu8c_BFu8ll()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8c_BFu8ll");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8c_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8c_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8c_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8c_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8c_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8c_BFu8ll, BFu8s_BFu8s_BFu8c_BFu8ll)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8c_BFu8s()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8c_BFu8s");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8c_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8c_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8c_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8c_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8c_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8c_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8c_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8c_BFu8s, BFu8s_BFu8s_BFu8c_BFu8s)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8i()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8i");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu8s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8i, BFu8s_BFu8s_BFu8i)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8i_BFs8c()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8i_BFs8c");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8i_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8i_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8i_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "BFu8s_BFu8s_BFu8i_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8i_BFs8c, BFu8s_BFu8s_BFu8i_BFs8c)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8i_BFs8i()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8i_BFs8i");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8i_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8i_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8i_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "BFu8s_BFu8s_BFu8i_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8i_BFs8i, BFu8s_BFu8s_BFu8i_BFs8i)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8i_BFs8ll()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8i_BFs8ll");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8i_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8i_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8i_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "BFu8s_BFu8s_BFu8i_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8i_BFs8ll, BFu8s_BFu8s_BFu8i_BFs8ll)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8i_BFs8s()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8i_BFs8s");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8i_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8i_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8i_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "BFu8s_BFu8s_BFu8i_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8i_BFs8s, BFu8s_BFu8s_BFu8i_BFs8s)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8i_BFu8c()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8i_BFu8c");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8i_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8i_BFu8c, BFu8s_BFu8s_BFu8i_BFu8c)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8i_BFu8i()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8i_BFu8i");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8i_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8i_BFu8i, BFu8s_BFu8s_BFu8i_BFu8i)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8i_BFu8ll()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8i_BFu8ll");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8i_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8i_BFu8ll, BFu8s_BFu8s_BFu8i_BFu8ll)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8i_BFu8s()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8i_BFu8s");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8i_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8i_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8i_BFu8s, BFu8s_BFu8s_BFu8i_BFu8s)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8ll()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8ll");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu8s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8ll, BFu8s_BFu8s_BFu8ll)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8ll_BFs8c()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8ll_BFs8c");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8ll_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8ll_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8ll_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8ll_BFs8c, BFu8s_BFu8s_BFu8ll_BFs8c)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8ll_BFs8i()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8ll_BFs8i");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8ll_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8ll_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8ll_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8ll_BFs8i, BFu8s_BFu8s_BFu8ll_BFs8i)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8ll_BFs8ll()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8ll_BFs8ll");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8ll_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8ll_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8ll_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8ll_BFs8ll, BFu8s_BFu8s_BFu8ll_BFs8ll)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8ll_BFs8s()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8ll_BFs8s");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8ll_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8ll_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8ll_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8ll_BFs8s, BFu8s_BFu8s_BFu8ll_BFs8s)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8ll_BFu8c()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8ll_BFu8c");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8ll_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8ll_BFu8c, BFu8s_BFu8s_BFu8ll_BFu8c)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8ll_BFu8i()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8ll_BFu8i");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8ll_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8ll_BFu8i, BFu8s_BFu8s_BFu8ll_BFu8i)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8ll_BFu8ll()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8ll_BFu8ll");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8ll_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8ll_BFu8ll, BFu8s_BFu8s_BFu8ll_BFu8ll)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8ll_BFu8s()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8ll_BFu8s");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8ll_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8ll_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8ll_BFu8s, BFu8s_BFu8s_BFu8ll_BFu8s)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8s()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8s");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu8s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8s, BFu8s_BFu8s_BFu8s)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8s_BFs8c()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8s_BFs8c");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8s_BFs8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8s_BFs8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8s_BFs8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFs8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFs8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFs8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFs8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "BFu8s_BFu8s_BFu8s_BFs8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8s_BFs8c, BFu8s_BFu8s_BFu8s_BFs8c)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8s_BFs8i()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8s_BFs8i");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8s_BFs8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8s_BFs8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8s_BFs8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFs8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFs8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFs8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFs8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "BFu8s_BFu8s_BFu8s_BFs8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8s_BFs8i, BFu8s_BFu8s_BFu8s_BFs8i)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8s_BFs8ll()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8s_BFs8ll");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8s_BFs8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8s_BFs8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8s_BFs8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFs8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFs8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFs8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFs8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "BFu8s_BFu8s_BFu8s_BFs8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8s_BFs8ll, BFu8s_BFu8s_BFu8s_BFs8ll)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8s_BFs8s()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8s_BFs8s");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8s_BFs8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8s_BFs8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8s_BFs8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFs8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFs8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFs8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFs8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_sll(1LL<<7), "BFu8s_BFu8s_BFu8s_BFs8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8s_BFs8s, BFu8s_BFu8s_BFu8s_BFs8s)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8s_BFu8c()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8s_BFu8c");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8s_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFu8c");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8s_BFu8c, BFu8s_BFu8s_BFu8s_BFu8c)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8s_BFu8i()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8s_BFu8i");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8s_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFu8i");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8s_BFu8i, BFu8s_BFu8s_BFu8s_BFu8i)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8s_BFu8ll()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8s_BFu8ll");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8s_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFu8ll");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8s_BFu8ll, BFu8s_BFu8s_BFu8s_BFu8ll)
//============================================================================



static void Test_BFu8s_BFu8s_BFu8s_BFu8s()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu8s_BFu8s");
    static STRUCT_IF_C BFu8s_BFu8s_BFu8s_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu8s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu8s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, 1, "BFu8s_BFu8s_BFu8s_BFu8s");
    set_bf_and_test(lv, v4, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu8s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu8s_BFu8s, BFu8s_BFu8s_BFu8s_BFu8s)
//============================================================================



static void Test_BFu8s_BFu8s_BFu9i()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu9i");
    static STRUCT_IF_C BFu8s_BFu8s_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu8s_BFu8s_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu8s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu9i, BFu8s_BFu8s_BFu9i)
//============================================================================



static void Test_BFu8s_BFu8s_BFu9ll()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu9ll");
    static STRUCT_IF_C BFu8s_BFu8s_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu8s_BFu8s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu8s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu9ll, BFu8s_BFu8s_BFu9ll)
//============================================================================



static void Test_BFu8s_BFu8s_BFu9s()
{
  {
    init_simple_test("BFu8s_BFu8s_BFu9s");
    static STRUCT_IF_C BFu8s_BFu8s_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu8s_BFu8s_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu8s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_BFu9s, BFu8s_BFu8s_BFu9s)
//============================================================================



static void Test_BFu8s_BFu8s_C()
{
  {
    init_simple_test("BFu8s_BFu8s_C");
    static STRUCT_IF_C BFu8s_BFu8s_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu8s_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_C");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_C");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_C");
    check_field_offset(lv, v3, 2, "BFu8s_BFu8s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_C, BFu8s_BFu8s_C)
//============================================================================



static void Test_BFu8s_BFu8s_D()
{
  {
    init_simple_test("BFu8s_BFu8s_D");
    static STRUCT_IF_C BFu8s_BFu8s_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_BFu8s_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_D");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_D");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_D");
    check_field_offset(lv, v3, 2, "BFu8s_BFu8s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_D, BFu8s_BFu8s_D)
//============================================================================



static void Test_BFu8s_BFu8s_F()
{
  {
    init_simple_test("BFu8s_BFu8s_F");
    static STRUCT_IF_C BFu8s_BFu8s_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_BFu8s_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_F");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_F");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_F");
    check_field_offset(lv, v3, 2, "BFu8s_BFu8s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_F, BFu8s_BFu8s_F)
//============================================================================



static void Test_BFu8s_BFu8s_I()
{
  {
    init_simple_test("BFu8s_BFu8s_I");
    static STRUCT_IF_C BFu8s_BFu8s_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_BFu8s_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_I");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_I");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_I");
    check_field_offset(lv, v3, 2, "BFu8s_BFu8s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_I, BFu8s_BFu8s_I)
//============================================================================



static void Test_BFu8s_BFu8s_Ip()
{
  {
    init_simple_test("BFu8s_BFu8s_Ip");
    static STRUCT_IF_C BFu8s_BFu8s_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_BFu8s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_Ip");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_Ip");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_Ip");
    check_field_offset(lv, v3, 2, "BFu8s_BFu8s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_Ip, BFu8s_BFu8s_Ip)
//============================================================================



static void Test_BFu8s_BFu8s_L()
{
  {
    init_simple_test("BFu8s_BFu8s_L");
    static STRUCT_IF_C BFu8s_BFu8s_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_BFu8s_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_L");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_L");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_L");
    check_field_offset(lv, v3, 2, "BFu8s_BFu8s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_L, BFu8s_BFu8s_L)
//============================================================================



static void Test_BFu8s_BFu8s_S()
{
  {
    init_simple_test("BFu8s_BFu8s_S");
    static STRUCT_IF_C BFu8s_BFu8s_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_S");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_S");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_S");
    check_field_offset(lv, v3, 2, "BFu8s_BFu8s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_S, BFu8s_BFu8s_S)
//============================================================================



static void Test_BFu8s_BFu8s_Uc()
{
  {
    init_simple_test("BFu8s_BFu8s_Uc");
    static STRUCT_IF_C BFu8s_BFu8s_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu8s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_Uc");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_Uc");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_Uc");
    check_field_offset(lv, v3, 2, "BFu8s_BFu8s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_Uc, BFu8s_BFu8s_Uc)
//============================================================================



static void Test_BFu8s_BFu8s_Ui()
{
  {
    init_simple_test("BFu8s_BFu8s_Ui");
    static STRUCT_IF_C BFu8s_BFu8s_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_BFu8s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_Ui");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_Ui");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_Ui");
    check_field_offset(lv, v3, 2, "BFu8s_BFu8s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_Ui, BFu8s_BFu8s_Ui)
//============================================================================



static void Test_BFu8s_BFu8s_Ul()
{
  {
    init_simple_test("BFu8s_BFu8s_Ul");
    static STRUCT_IF_C BFu8s_BFu8s_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_BFu8s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_Ul");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_Ul");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_Ul");
    check_field_offset(lv, v3, 2, "BFu8s_BFu8s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_Ul, BFu8s_BFu8s_Ul)
//============================================================================



static void Test_BFu8s_BFu8s_Us()
{
  {
    init_simple_test("BFu8s_BFu8s_Us");
    static STRUCT_IF_C BFu8s_BFu8s_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu8s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_Us");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_Us");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_Us");
    check_field_offset(lv, v3, 2, "BFu8s_BFu8s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_Us, BFu8s_BFu8s_Us)
//============================================================================



static void Test_BFu8s_BFu8s_Vp()
{
  {
    init_simple_test("BFu8s_BFu8s_Vp");
    static STRUCT_IF_C BFu8s_BFu8s_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_BFu8s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu8s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu8s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_Vp");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "BFu8s_BFu8s_Vp");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu8s_Vp");
    check_field_offset(lv, v3, 2, "BFu8s_BFu8s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu8s_Vp, BFu8s_BFu8s_Vp)
//============================================================================



static void Test_BFu8s_BFu9i()
{
  {
    init_simple_test("BFu8s_BFu9i");
    static STRUCT_IF_C BFu8s_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i, BFu8s_BFu9i)
//============================================================================



static void Test_BFu8s_BFu9i_BFu15i()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu15i");
    static STRUCT_IF_C BFu8s_BFu9i_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu15i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu15i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu15i");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu8s_BFu9i_BFu15i");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu8s_BFu9i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu15i, BFu8s_BFu9i_BFu15i)
//============================================================================



static void Test_BFu8s_BFu9i_BFu15ll()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu15ll");
    static STRUCT_IF_C BFu8s_BFu9i_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu15ll");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu8s_BFu9i_BFu15ll");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu8s_BFu9i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu15ll, BFu8s_BFu9i_BFu15ll)
//============================================================================



static void Test_BFu8s_BFu9i_BFu15s()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu15s");
    static STRUCT_IF_C BFu8s_BFu9i_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu15s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu15s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu15s");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu8s_BFu9i_BFu15s");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu8s_BFu9i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu15s, BFu8s_BFu9i_BFu15s)
//============================================================================



static void Test_BFu8s_BFu9i_BFu16i()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu16i");
    static STRUCT_IF_C BFu8s_BFu9i_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu16i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu16i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu16i");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu8s_BFu9i_BFu16i");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu8s_BFu9i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu16i, BFu8s_BFu9i_BFu16i)
//============================================================================



static void Test_BFu8s_BFu9i_BFu16ll()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu16ll");
    static STRUCT_IF_C BFu8s_BFu9i_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu16ll");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu8s_BFu9i_BFu16ll");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu8s_BFu9i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu16ll, BFu8s_BFu9i_BFu16ll)
//============================================================================



static void Test_BFu8s_BFu9i_BFu16s()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu16s");
    static STRUCT_IF_C BFu8s_BFu9i_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu16s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu16s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu16s");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu8s_BFu9i_BFu16s");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu8s_BFu9i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu16s, BFu8s_BFu9i_BFu16s)
//============================================================================



static void Test_BFu8s_BFu9i_BFu17i()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu17i");
    static STRUCT_IF_C BFu8s_BFu9i_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu17i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu17i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu17i");
    set_bf_and_test(lv, v3, 2, 1, 17, 1, "BFu8s_BFu9i_BFu17i");
    set_bf_and_test(lv, v3, 2, 1, 17, hide_ull(1LL<<16), "BFu8s_BFu9i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu17i, BFu8s_BFu9i_BFu17i)
//============================================================================



static void Test_BFu8s_BFu9i_BFu17ll()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu17ll");
    static STRUCT_IF_C BFu8s_BFu9i_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu17ll");
    set_bf_and_test(lv, v3, 2, 1, 17, 1, "BFu8s_BFu9i_BFu17ll");
    set_bf_and_test(lv, v3, 2, 1, 17, hide_ull(1LL<<16), "BFu8s_BFu9i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu17ll, BFu8s_BFu9i_BFu17ll)
//============================================================================



static void Test_BFu8s_BFu9i_BFu1c()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu1c");
    static STRUCT_IF_C BFu8s_BFu9i_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu1c");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu1c");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu1c");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu8s_BFu9i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu1c, BFu8s_BFu9i_BFu1c)
//============================================================================



static void Test_BFu8s_BFu9i_BFu1i()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu1i");
    static STRUCT_IF_C BFu8s_BFu9i_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu1i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu1i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu1i");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu8s_BFu9i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu1i, BFu8s_BFu9i_BFu1i)
//============================================================================



static void Test_BFu8s_BFu9i_BFu1ll()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu1ll");
    static STRUCT_IF_C BFu8s_BFu9i_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu1ll");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu8s_BFu9i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu1ll, BFu8s_BFu9i_BFu1ll)
//============================================================================



static void Test_BFu8s_BFu9i_BFu1s()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu1s");
    static STRUCT_IF_C BFu8s_BFu9i_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu1s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu1s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu1s");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu8s_BFu9i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu1s, BFu8s_BFu9i_BFu1s)
//============================================================================



static void Test_BFu8s_BFu9i_BFu31i()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu31i");
    static STRUCT_IF_C BFu8s_BFu9i_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_BFu9i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu31i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu31i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu31i");
    set_bf_and_test(lv, v3, 2, 1, 31, 1, "BFu8s_BFu9i_BFu31i");
    set_bf_and_test(lv, v3, 2, 1, 31, hide_ull(1LL<<30), "BFu8s_BFu9i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu31i, BFu8s_BFu9i_BFu31i)
//============================================================================



static void Test_BFu8s_BFu9i_BFu31ll()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu31ll");
    static STRUCT_IF_C BFu8s_BFu9i_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_BFu9i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu31ll");
    set_bf_and_test(lv, v3, 2, 1, 31, 1, "BFu8s_BFu9i_BFu31ll");
    set_bf_and_test(lv, v3, 2, 1, 31, hide_ull(1LL<<30), "BFu8s_BFu9i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu31ll, BFu8s_BFu9i_BFu31ll)
//============================================================================



static void Test_BFu8s_BFu9i_BFu32i()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu32i");
    static STRUCT_IF_C BFu8s_BFu9i_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu32i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu32i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu32i");
    set_bf_and_test(lv, v3, 2, 1, 32, 1, "BFu8s_BFu9i_BFu32i");
    set_bf_and_test(lv, v3, 2, 1, 32, hide_ull(1LL<<31), "BFu8s_BFu9i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu32i, BFu8s_BFu9i_BFu32i)
//============================================================================



static void Test_BFu8s_BFu9i_BFu32ll()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu32ll");
    static STRUCT_IF_C BFu8s_BFu9i_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu32ll");
    set_bf_and_test(lv, v3, 2, 1, 32, 1, "BFu8s_BFu9i_BFu32ll");
    set_bf_and_test(lv, v3, 2, 1, 32, hide_ull(1LL<<31), "BFu8s_BFu9i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu32ll, BFu8s_BFu9i_BFu32ll)
//============================================================================



static void Test_BFu8s_BFu9i_BFu33()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu33");
    static STRUCT_IF_C BFu8s_BFu9i_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu33");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu33");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu33");
    set_bf_and_test(lv, v3, 2, 1, 33, 1, "BFu8s_BFu9i_BFu33");
    set_bf_and_test(lv, v3, 2, 1, 33, hide_ull(1LL<<32), "BFu8s_BFu9i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu33, BFu8s_BFu9i_BFu33)
//============================================================================



static void Test_BFu8s_BFu9i_BFu7c()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu7c");
    static STRUCT_IF_C BFu8s_BFu9i_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu7c");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu7c");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu7c");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu8s_BFu9i_BFu7c");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu8s_BFu9i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu7c, BFu8s_BFu9i_BFu7c)
//============================================================================



static void Test_BFu8s_BFu9i_BFu7i()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu7i");
    static STRUCT_IF_C BFu8s_BFu9i_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu7i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu7i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu7i");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu8s_BFu9i_BFu7i");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu8s_BFu9i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu7i, BFu8s_BFu9i_BFu7i)
//============================================================================



static void Test_BFu8s_BFu9i_BFu7ll()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu7ll");
    static STRUCT_IF_C BFu8s_BFu9i_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu7ll");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu8s_BFu9i_BFu7ll");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu8s_BFu9i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu7ll, BFu8s_BFu9i_BFu7ll)
//============================================================================



static void Test_BFu8s_BFu9i_BFu7s()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu7s");
    static STRUCT_IF_C BFu8s_BFu9i_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu7s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu7s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu7s");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu8s_BFu9i_BFu7s");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu8s_BFu9i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu7s, BFu8s_BFu9i_BFu7s)
//============================================================================



static void Test_BFu8s_BFu9i_BFu8c()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu8c");
    static STRUCT_IF_C BFu8s_BFu9i_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu8c");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu8s_BFu9i_BFu8c");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu8c, BFu8s_BFu9i_BFu8c)
//============================================================================



static void Test_BFu8s_BFu9i_BFu8i()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu8i");
    static STRUCT_IF_C BFu8s_BFu9i_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu8i");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu8s_BFu9i_BFu8i");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu8i, BFu8s_BFu9i_BFu8i)
//============================================================================



static void Test_BFu8s_BFu9i_BFu8ll()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu8ll");
    static STRUCT_IF_C BFu8s_BFu9i_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu8s_BFu9i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu8ll, BFu8s_BFu9i_BFu8ll)
//============================================================================



static void Test_BFu8s_BFu9i_BFu8s()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu8s");
    static STRUCT_IF_C BFu8s_BFu9i_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu8s");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu8s_BFu9i_BFu8s");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu8s, BFu8s_BFu9i_BFu8s)
//============================================================================



static void Test_BFu8s_BFu9i_BFu9i()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu9i");
    static STRUCT_IF_C BFu8s_BFu9i_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu8s_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu9i, BFu8s_BFu9i_BFu9i)
//============================================================================



static void Test_BFu8s_BFu9i_BFu9ll()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu9ll");
    static STRUCT_IF_C BFu8s_BFu9i_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu8s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu9ll, BFu8s_BFu9i_BFu9ll)
//============================================================================



static void Test_BFu8s_BFu9i_BFu9s()
{
  {
    init_simple_test("BFu8s_BFu9i_BFu9s");
    static STRUCT_IF_C BFu8s_BFu9i_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu8s_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_BFu9s, BFu8s_BFu9i_BFu9s)
//============================================================================



static void Test_BFu8s_BFu9i_C()
{
  {
    init_simple_test("BFu8s_BFu9i_C");
    static STRUCT_IF_C BFu8s_BFu9i_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_C");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_C");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_C");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_C, BFu8s_BFu9i_C)
//============================================================================



static void Test_BFu8s_BFu9i_D()
{
  {
    init_simple_test("BFu8s_BFu9i_D");
    static STRUCT_IF_C BFu8s_BFu9i_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_BFu9i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_D");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_D");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_D");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_D, BFu8s_BFu9i_D)
//============================================================================



static void Test_BFu8s_BFu9i_F()
{
  {
    init_simple_test("BFu8s_BFu9i_F");
    static STRUCT_IF_C BFu8s_BFu9i_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_F");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_F");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_F");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_F, BFu8s_BFu9i_F)
//============================================================================



static void Test_BFu8s_BFu9i_I()
{
  {
    init_simple_test("BFu8s_BFu9i_I");
    static STRUCT_IF_C BFu8s_BFu9i_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_I");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_I");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_I");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_I, BFu8s_BFu9i_I)
//============================================================================



static void Test_BFu8s_BFu9i_Ip()
{
  {
    init_simple_test("BFu8s_BFu9i_Ip");
    static STRUCT_IF_C BFu8s_BFu9i_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_BFu9i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_Ip");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_Ip");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_Ip");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_Ip, BFu8s_BFu9i_Ip)
//============================================================================



static void Test_BFu8s_BFu9i_L()
{
  {
    init_simple_test("BFu8s_BFu9i_L");
    static STRUCT_IF_C BFu8s_BFu9i_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_BFu9i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_L");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_L");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_L");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_L, BFu8s_BFu9i_L)
//============================================================================



static void Test_BFu8s_BFu9i_S()
{
  {
    init_simple_test("BFu8s_BFu9i_S");
    static STRUCT_IF_C BFu8s_BFu9i_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_S");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_S");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_S");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_S, BFu8s_BFu9i_S)
//============================================================================



static void Test_BFu8s_BFu9i_Uc()
{
  {
    init_simple_test("BFu8s_BFu9i_Uc");
    static STRUCT_IF_C BFu8s_BFu9i_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_Uc");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_Uc");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_Uc");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_Uc, BFu8s_BFu9i_Uc)
//============================================================================



static void Test_BFu8s_BFu9i_Ui()
{
  {
    init_simple_test("BFu8s_BFu9i_Ui");
    static STRUCT_IF_C BFu8s_BFu9i_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_Ui");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_Ui");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_Ui");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_Ui, BFu8s_BFu9i_Ui)
//============================================================================



static void Test_BFu8s_BFu9i_Ul()
{
  {
    init_simple_test("BFu8s_BFu9i_Ul");
    static STRUCT_IF_C BFu8s_BFu9i_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_BFu9i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_Ul");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_Ul");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_Ul");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_Ul, BFu8s_BFu9i_Ul)
//============================================================================



static void Test_BFu8s_BFu9i_Us()
{
  {
    init_simple_test("BFu8s_BFu9i_Us");
    static STRUCT_IF_C BFu8s_BFu9i_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_Us");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_Us");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_Us");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_Us, BFu8s_BFu9i_Us)
//============================================================================



static void Test_BFu8s_BFu9i_Vp()
{
  {
    init_simple_test("BFu8s_BFu9i_Vp");
    static STRUCT_IF_C BFu8s_BFu9i_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_BFu9i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9i_Vp");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9i_Vp");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9i_Vp");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9i_Vp, BFu8s_BFu9i_Vp)
//============================================================================



static void Test_BFu8s_BFu9ll()
{
  {
    init_simple_test("BFu8s_BFu9ll");
    static STRUCT_IF_C BFu8s_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll, BFu8s_BFu9ll)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu15i()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu15i");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu15i");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu8s_BFu9ll_BFu15i");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu8s_BFu9ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu15i, BFu8s_BFu9ll_BFu15i)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu15ll()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu15ll");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu8s_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu8s_BFu9ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu15ll, BFu8s_BFu9ll_BFu15ll)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu15s()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu15s");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu15s");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu8s_BFu9ll_BFu15s");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu8s_BFu9ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu15s, BFu8s_BFu9ll_BFu15s)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu16i()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu16i");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu16i");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu8s_BFu9ll_BFu16i");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu8s_BFu9ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu16i, BFu8s_BFu9ll_BFu16i)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu16ll()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu16ll");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu8s_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu8s_BFu9ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu16ll, BFu8s_BFu9ll_BFu16ll)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu16s()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu16s");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu16s");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu8s_BFu9ll_BFu16s");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu8s_BFu9ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu16s, BFu8s_BFu9ll_BFu16s)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu17i()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu17i");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu17i");
    set_bf_and_test(lv, v3, 2, 1, 17, 1, "BFu8s_BFu9ll_BFu17i");
    set_bf_and_test(lv, v3, 2, 1, 17, hide_ull(1LL<<16), "BFu8s_BFu9ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu17i, BFu8s_BFu9ll_BFu17i)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu17ll()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu17ll");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v3, 2, 1, 17, 1, "BFu8s_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v3, 2, 1, 17, hide_ull(1LL<<16), "BFu8s_BFu9ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu17ll, BFu8s_BFu9ll_BFu17ll)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu1c()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu1c");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu1c");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu8s_BFu9ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu1c, BFu8s_BFu9ll_BFu1c)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu1i()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu1i");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu1i");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu8s_BFu9ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu1i, BFu8s_BFu9ll_BFu1i)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu1ll()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu1ll");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu8s_BFu9ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu1ll, BFu8s_BFu9ll_BFu1ll)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu1s()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu1s");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu1s");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu8s_BFu9ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu1s, BFu8s_BFu9ll_BFu1s)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu31i()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu31i");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_BFu9ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu31i");
    set_bf_and_test(lv, v3, 2, 1, 31, 1, "BFu8s_BFu9ll_BFu31i");
    set_bf_and_test(lv, v3, 2, 1, 31, hide_ull(1LL<<30), "BFu8s_BFu9ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu31i, BFu8s_BFu9ll_BFu31i)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu31ll()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu31ll");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_BFu9ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v3, 2, 1, 31, 1, "BFu8s_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v3, 2, 1, 31, hide_ull(1LL<<30), "BFu8s_BFu9ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu31ll, BFu8s_BFu9ll_BFu31ll)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu32i()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu32i");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu32i");
    set_bf_and_test(lv, v3, 2, 1, 32, 1, "BFu8s_BFu9ll_BFu32i");
    set_bf_and_test(lv, v3, 2, 1, 32, hide_ull(1LL<<31), "BFu8s_BFu9ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu32i, BFu8s_BFu9ll_BFu32i)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu32ll()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu32ll");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v3, 2, 1, 32, 1, "BFu8s_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v3, 2, 1, 32, hide_ull(1LL<<31), "BFu8s_BFu9ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu32ll, BFu8s_BFu9ll_BFu32ll)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu33()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu33");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu33");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu33");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu33");
    set_bf_and_test(lv, v3, 2, 1, 33, 1, "BFu8s_BFu9ll_BFu33");
    set_bf_and_test(lv, v3, 2, 1, 33, hide_ull(1LL<<32), "BFu8s_BFu9ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu33, BFu8s_BFu9ll_BFu33)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu7c()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu7c");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu7c");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu8s_BFu9ll_BFu7c");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu8s_BFu9ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu7c, BFu8s_BFu9ll_BFu7c)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu7i()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu7i");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu7i");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu8s_BFu9ll_BFu7i");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu8s_BFu9ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu7i, BFu8s_BFu9ll_BFu7i)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu7ll()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu7ll");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu8s_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu8s_BFu9ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu7ll, BFu8s_BFu9ll_BFu7ll)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu7s()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu7s");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu7s");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu8s_BFu9ll_BFu7s");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu8s_BFu9ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu7s, BFu8s_BFu9ll_BFu7s)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu8c()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu8c");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu8s_BFu9ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu8c, BFu8s_BFu9ll_BFu8c)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu8i()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu8i");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu8s_BFu9ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu8i, BFu8s_BFu9ll_BFu8i)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu8ll()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu8ll");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu8s_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu8ll, BFu8s_BFu9ll_BFu8ll)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu8s()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu8s");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu8s_BFu9ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu8s, BFu8s_BFu9ll_BFu8s)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu9i()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu9i");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu8s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu9i, BFu8s_BFu9ll_BFu9i)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu9ll()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu9ll");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu8s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu9ll, BFu8s_BFu9ll_BFu9ll)
//============================================================================



static void Test_BFu8s_BFu9ll_BFu9s()
{
  {
    init_simple_test("BFu8s_BFu9ll_BFu9s");
    static STRUCT_IF_C BFu8s_BFu9ll_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu8s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_BFu9s, BFu8s_BFu9ll_BFu9s)
//============================================================================



static void Test_BFu8s_BFu9ll_C()
{
  {
    init_simple_test("BFu8s_BFu9ll_C");
    static STRUCT_IF_C BFu8s_BFu9ll_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_C");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_C");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_C");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_C, BFu8s_BFu9ll_C)
//============================================================================



static void Test_BFu8s_BFu9ll_D()
{
  {
    init_simple_test("BFu8s_BFu9ll_D");
    static STRUCT_IF_C BFu8s_BFu9ll_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_BFu9ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_D");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_D");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_D");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_D, BFu8s_BFu9ll_D)
//============================================================================



static void Test_BFu8s_BFu9ll_F()
{
  {
    init_simple_test("BFu8s_BFu9ll_F");
    static STRUCT_IF_C BFu8s_BFu9ll_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_F");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_F");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_F");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_F, BFu8s_BFu9ll_F)
//============================================================================



static void Test_BFu8s_BFu9ll_I()
{
  {
    init_simple_test("BFu8s_BFu9ll_I");
    static STRUCT_IF_C BFu8s_BFu9ll_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_I");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_I");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_I");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_I, BFu8s_BFu9ll_I)
//============================================================================



static void Test_BFu8s_BFu9ll_Ip()
{
  {
    init_simple_test("BFu8s_BFu9ll_Ip");
    static STRUCT_IF_C BFu8s_BFu9ll_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_BFu9ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_Ip");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_Ip");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_Ip");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_Ip, BFu8s_BFu9ll_Ip)
//============================================================================



static void Test_BFu8s_BFu9ll_L()
{
  {
    init_simple_test("BFu8s_BFu9ll_L");
    static STRUCT_IF_C BFu8s_BFu9ll_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_BFu9ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_L");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_L");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_L");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_L, BFu8s_BFu9ll_L)
//============================================================================



static void Test_BFu8s_BFu9ll_S()
{
  {
    init_simple_test("BFu8s_BFu9ll_S");
    static STRUCT_IF_C BFu8s_BFu9ll_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_S");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_S");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_S");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_S, BFu8s_BFu9ll_S)
//============================================================================



static void Test_BFu8s_BFu9ll_Uc()
{
  {
    init_simple_test("BFu8s_BFu9ll_Uc");
    static STRUCT_IF_C BFu8s_BFu9ll_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_Uc");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_Uc");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_Uc");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_Uc, BFu8s_BFu9ll_Uc)
//============================================================================



static void Test_BFu8s_BFu9ll_Ui()
{
  {
    init_simple_test("BFu8s_BFu9ll_Ui");
    static STRUCT_IF_C BFu8s_BFu9ll_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_Ui");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_Ui");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_Ui");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_Ui, BFu8s_BFu9ll_Ui)
//============================================================================



static void Test_BFu8s_BFu9ll_Ul()
{
  {
    init_simple_test("BFu8s_BFu9ll_Ul");
    static STRUCT_IF_C BFu8s_BFu9ll_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_BFu9ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_Ul");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_Ul");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_Ul");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_Ul, BFu8s_BFu9ll_Ul)
//============================================================================



static void Test_BFu8s_BFu9ll_Us()
{
  {
    init_simple_test("BFu8s_BFu9ll_Us");
    static STRUCT_IF_C BFu8s_BFu9ll_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_Us");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_Us");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_Us");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_Us, BFu8s_BFu9ll_Us)
//============================================================================



static void Test_BFu8s_BFu9ll_Vp()
{
  {
    init_simple_test("BFu8s_BFu9ll_Vp");
    static STRUCT_IF_C BFu8s_BFu9ll_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_BFu9ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9ll_Vp");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9ll_Vp");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9ll_Vp");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9ll_Vp, BFu8s_BFu9ll_Vp)
//============================================================================



static void Test_BFu8s_BFu9s()
{
  {
    init_simple_test("BFu8s_BFu9s");
    static STRUCT_IF_C BFu8s_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s, BFu8s_BFu9s)
//============================================================================



static void Test_BFu8s_BFu9s_BFu15i()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu15i");
    static STRUCT_IF_C BFu8s_BFu9s_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu15i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu15i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu15i");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu8s_BFu9s_BFu15i");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu8s_BFu9s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu15i, BFu8s_BFu9s_BFu15i)
//============================================================================



static void Test_BFu8s_BFu9s_BFu15ll()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu15ll");
    static STRUCT_IF_C BFu8s_BFu9s_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu15ll");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu8s_BFu9s_BFu15ll");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu8s_BFu9s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu15ll, BFu8s_BFu9s_BFu15ll)
//============================================================================



static void Test_BFu8s_BFu9s_BFu15s()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu15s");
    static STRUCT_IF_C BFu8s_BFu9s_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu15s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu15s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu15s");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu8s_BFu9s_BFu15s");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu8s_BFu9s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu15s, BFu8s_BFu9s_BFu15s)
//============================================================================



static void Test_BFu8s_BFu9s_BFu16i()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu16i");
    static STRUCT_IF_C BFu8s_BFu9s_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu16i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu16i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu16i");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu8s_BFu9s_BFu16i");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu8s_BFu9s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu16i, BFu8s_BFu9s_BFu16i)
//============================================================================



static void Test_BFu8s_BFu9s_BFu16ll()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu16ll");
    static STRUCT_IF_C BFu8s_BFu9s_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu16ll");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu8s_BFu9s_BFu16ll");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu8s_BFu9s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu16ll, BFu8s_BFu9s_BFu16ll)
//============================================================================



static void Test_BFu8s_BFu9s_BFu16s()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu16s");
    static STRUCT_IF_C BFu8s_BFu9s_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu16s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu16s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu16s");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu8s_BFu9s_BFu16s");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu8s_BFu9s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu16s, BFu8s_BFu9s_BFu16s)
//============================================================================



static void Test_BFu8s_BFu9s_BFu17i()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu17i");
    static STRUCT_IF_C BFu8s_BFu9s_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu17i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu17i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu17i");
    set_bf_and_test(lv, v3, 2, 1, 17, 1, "BFu8s_BFu9s_BFu17i");
    set_bf_and_test(lv, v3, 2, 1, 17, hide_ull(1LL<<16), "BFu8s_BFu9s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu17i, BFu8s_BFu9s_BFu17i)
//============================================================================



static void Test_BFu8s_BFu9s_BFu17ll()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu17ll");
    static STRUCT_IF_C BFu8s_BFu9s_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu17ll");
    set_bf_and_test(lv, v3, 2, 1, 17, 1, "BFu8s_BFu9s_BFu17ll");
    set_bf_and_test(lv, v3, 2, 1, 17, hide_ull(1LL<<16), "BFu8s_BFu9s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu17ll, BFu8s_BFu9s_BFu17ll)
//============================================================================



static void Test_BFu8s_BFu9s_BFu1c()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu1c");
    static STRUCT_IF_C BFu8s_BFu9s_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu1c");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu1c");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu1c");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu8s_BFu9s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu1c, BFu8s_BFu9s_BFu1c)
//============================================================================



static void Test_BFu8s_BFu9s_BFu1i()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu1i");
    static STRUCT_IF_C BFu8s_BFu9s_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu1i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu1i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu1i");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu8s_BFu9s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu1i, BFu8s_BFu9s_BFu1i)
//============================================================================



static void Test_BFu8s_BFu9s_BFu1ll()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu1ll");
    static STRUCT_IF_C BFu8s_BFu9s_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu1ll");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu8s_BFu9s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu1ll, BFu8s_BFu9s_BFu1ll)
//============================================================================



static void Test_BFu8s_BFu9s_BFu1s()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu1s");
    static STRUCT_IF_C BFu8s_BFu9s_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu1s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu1s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu1s");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu8s_BFu9s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu1s, BFu8s_BFu9s_BFu1s)
//============================================================================



static void Test_BFu8s_BFu9s_BFu31i()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu31i");
    static STRUCT_IF_C BFu8s_BFu9s_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_BFu9s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu31i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu31i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu31i");
    set_bf_and_test(lv, v3, 2, 1, 31, 1, "BFu8s_BFu9s_BFu31i");
    set_bf_and_test(lv, v3, 2, 1, 31, hide_ull(1LL<<30), "BFu8s_BFu9s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu31i, BFu8s_BFu9s_BFu31i)
//============================================================================



static void Test_BFu8s_BFu9s_BFu31ll()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu31ll");
    static STRUCT_IF_C BFu8s_BFu9s_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_BFu9s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu31ll");
    set_bf_and_test(lv, v3, 2, 1, 31, 1, "BFu8s_BFu9s_BFu31ll");
    set_bf_and_test(lv, v3, 2, 1, 31, hide_ull(1LL<<30), "BFu8s_BFu9s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu31ll, BFu8s_BFu9s_BFu31ll)
//============================================================================



static void Test_BFu8s_BFu9s_BFu32i()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu32i");
    static STRUCT_IF_C BFu8s_BFu9s_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu32i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu32i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu32i");
    set_bf_and_test(lv, v3, 2, 1, 32, 1, "BFu8s_BFu9s_BFu32i");
    set_bf_and_test(lv, v3, 2, 1, 32, hide_ull(1LL<<31), "BFu8s_BFu9s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu32i, BFu8s_BFu9s_BFu32i)
//============================================================================



static void Test_BFu8s_BFu9s_BFu32ll()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu32ll");
    static STRUCT_IF_C BFu8s_BFu9s_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu32ll");
    set_bf_and_test(lv, v3, 2, 1, 32, 1, "BFu8s_BFu9s_BFu32ll");
    set_bf_and_test(lv, v3, 2, 1, 32, hide_ull(1LL<<31), "BFu8s_BFu9s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu32ll, BFu8s_BFu9s_BFu32ll)
//============================================================================



static void Test_BFu8s_BFu9s_BFu33()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu33");
    static STRUCT_IF_C BFu8s_BFu9s_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu33");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu33");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu33");
    set_bf_and_test(lv, v3, 2, 1, 33, 1, "BFu8s_BFu9s_BFu33");
    set_bf_and_test(lv, v3, 2, 1, 33, hide_ull(1LL<<32), "BFu8s_BFu9s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu33, BFu8s_BFu9s_BFu33)
//============================================================================



static void Test_BFu8s_BFu9s_BFu7c()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu7c");
    static STRUCT_IF_C BFu8s_BFu9s_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu7c");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu7c");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu7c");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu8s_BFu9s_BFu7c");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu8s_BFu9s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu7c, BFu8s_BFu9s_BFu7c)
//============================================================================



static void Test_BFu8s_BFu9s_BFu7i()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu7i");
    static STRUCT_IF_C BFu8s_BFu9s_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu7i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu7i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu7i");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu8s_BFu9s_BFu7i");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu8s_BFu9s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu7i, BFu8s_BFu9s_BFu7i)
//============================================================================



static void Test_BFu8s_BFu9s_BFu7ll()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu7ll");
    static STRUCT_IF_C BFu8s_BFu9s_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu7ll");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu8s_BFu9s_BFu7ll");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu8s_BFu9s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu7ll, BFu8s_BFu9s_BFu7ll)
//============================================================================



static void Test_BFu8s_BFu9s_BFu7s()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu7s");
    static STRUCT_IF_C BFu8s_BFu9s_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_BFu9s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu7s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu7s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu7s");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu8s_BFu9s_BFu7s");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu8s_BFu9s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu7s, BFu8s_BFu9s_BFu7s)
//============================================================================



static void Test_BFu8s_BFu9s_BFu8c()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu8c");
    static STRUCT_IF_C BFu8s_BFu9s_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu8c");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu8s_BFu9s_BFu8c");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu8c, BFu8s_BFu9s_BFu8c)
//============================================================================



static void Test_BFu8s_BFu9s_BFu8i()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu8i");
    static STRUCT_IF_C BFu8s_BFu9s_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu8i");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu8s_BFu9s_BFu8i");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu8i, BFu8s_BFu9s_BFu8i)
//============================================================================



static void Test_BFu8s_BFu9s_BFu8ll()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu8ll");
    static STRUCT_IF_C BFu8s_BFu9s_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu8s_BFu9s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu8ll, BFu8s_BFu9s_BFu8ll)
//============================================================================



static void Test_BFu8s_BFu9s_BFu8s()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu8s");
    static STRUCT_IF_C BFu8s_BFu9s_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu8s");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu8s_BFu9s_BFu8s");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu8s, BFu8s_BFu9s_BFu8s)
//============================================================================



static void Test_BFu8s_BFu9s_BFu9i()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu9i");
    static STRUCT_IF_C BFu8s_BFu9s_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu8s_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu9i, BFu8s_BFu9s_BFu9i)
//============================================================================



static void Test_BFu8s_BFu9s_BFu9ll()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu9ll");
    static STRUCT_IF_C BFu8s_BFu9s_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu8s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu9ll, BFu8s_BFu9s_BFu9ll)
//============================================================================



static void Test_BFu8s_BFu9s_BFu9s()
{
  {
    init_simple_test("BFu8s_BFu9s_BFu9s");
    static STRUCT_IF_C BFu8s_BFu9s_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu8s_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_BFu9s, BFu8s_BFu9s_BFu9s)
//============================================================================



static void Test_BFu8s_BFu9s_C()
{
  {
    init_simple_test("BFu8s_BFu9s_C");
    static STRUCT_IF_C BFu8s_BFu9s_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9s_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_C");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_C");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_C");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_C, BFu8s_BFu9s_C)
//============================================================================



static void Test_BFu8s_BFu9s_D()
{
  {
    init_simple_test("BFu8s_BFu9s_D");
    static STRUCT_IF_C BFu8s_BFu9s_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_BFu9s_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_D");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_D");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_D");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_D, BFu8s_BFu9s_D)
//============================================================================



static void Test_BFu8s_BFu9s_F()
{
  {
    init_simple_test("BFu8s_BFu9s_F");
    static STRUCT_IF_C BFu8s_BFu9s_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9s_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_F");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_F");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_F");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_F, BFu8s_BFu9s_F)
//============================================================================



static void Test_BFu8s_BFu9s_I()
{
  {
    init_simple_test("BFu8s_BFu9s_I");
    static STRUCT_IF_C BFu8s_BFu9s_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9s_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_I");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_I");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_I");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_I, BFu8s_BFu9s_I)
//============================================================================



static void Test_BFu8s_BFu9s_Ip()
{
  {
    init_simple_test("BFu8s_BFu9s_Ip");
    static STRUCT_IF_C BFu8s_BFu9s_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_BFu9s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_Ip");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_Ip");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_Ip");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_Ip, BFu8s_BFu9s_Ip)
//============================================================================



static void Test_BFu8s_BFu9s_L()
{
  {
    init_simple_test("BFu8s_BFu9s_L");
    static STRUCT_IF_C BFu8s_BFu9s_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_BFu9s_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_L");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_L");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_L");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_L, BFu8s_BFu9s_L)
//============================================================================



static void Test_BFu8s_BFu9s_S()
{
  {
    init_simple_test("BFu8s_BFu9s_S");
    static STRUCT_IF_C BFu8s_BFu9s_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9s_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_S");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_S");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_S");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_S, BFu8s_BFu9s_S)
//============================================================================



static void Test_BFu8s_BFu9s_Uc()
{
  {
    init_simple_test("BFu8s_BFu9s_Uc");
    static STRUCT_IF_C BFu8s_BFu9s_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_BFu9s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_Uc");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_Uc");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_Uc");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_Uc, BFu8s_BFu9s_Uc)
//============================================================================



static void Test_BFu8s_BFu9s_Ui()
{
  {
    init_simple_test("BFu8s_BFu9s_Ui");
    static STRUCT_IF_C BFu8s_BFu9s_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_BFu9s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_Ui");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_Ui");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_Ui");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_Ui, BFu8s_BFu9s_Ui)
//============================================================================



static void Test_BFu8s_BFu9s_Ul()
{
  {
    init_simple_test("BFu8s_BFu9s_Ul");
    static STRUCT_IF_C BFu8s_BFu9s_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_BFu9s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_Ul");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_Ul");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_Ul");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_Ul, BFu8s_BFu9s_Ul)
//============================================================================



static void Test_BFu8s_BFu9s_Us()
{
  {
    init_simple_test("BFu8s_BFu9s_Us");
    static STRUCT_IF_C BFu8s_BFu9s_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_BFu9s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_Us");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_Us");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_Us");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_Us, BFu8s_BFu9s_Us)
//============================================================================



static void Test_BFu8s_BFu9s_Vp()
{
  {
    init_simple_test("BFu8s_BFu9s_Vp");
    static STRUCT_IF_C BFu8s_BFu9s_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_BFu9s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_BFu9s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_BFu9s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_BFu9s_Vp");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "BFu8s_BFu9s_Vp");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "BFu8s_BFu9s_Vp");
    check_field_offset(lv, v3, 3, "BFu8s_BFu9s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_BFu9s_Vp, BFu8s_BFu9s_Vp)
//============================================================================



static void Test_BFu8s_C()
{
  {
    init_simple_test("BFu8s_C");
    static STRUCT_IF_C BFu8s_C lv;
    check2(sizeof(lv), 2, "sizeof(BFu8s_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C");
    check_field_offset(lv, v2, 1, "BFu8s_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C, BFu8s_C)
//============================================================================



static void Test_BFu8s_C_BFu15i()
{
  {
    init_simple_test("BFu8s_C_BFu15i");
    static STRUCT_IF_C BFu8s_C_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_C_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu15i");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu15i.v2");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu8s_C_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu8s_C_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu15i, BFu8s_C_BFu15i)
//============================================================================



static void Test_BFu8s_C_BFu15ll()
{
  {
    init_simple_test("BFu8s_C_BFu15ll");
    static STRUCT_IF_C BFu8s_C_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_C_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu15ll");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu15ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu8s_C_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu8s_C_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu15ll, BFu8s_C_BFu15ll)
//============================================================================



static void Test_BFu8s_C_BFu15s()
{
  {
    init_simple_test("BFu8s_C_BFu15s");
    static STRUCT_IF_C BFu8s_C_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_C_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu15s");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu15s.v2");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu8s_C_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu8s_C_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu15s, BFu8s_C_BFu15s)
//============================================================================



static void Test_BFu8s_C_BFu16i()
{
  {
    init_simple_test("BFu8s_C_BFu16i");
    static STRUCT_IF_C BFu8s_C_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_C_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu16i");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu16i.v2");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu8s_C_BFu16i");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu8s_C_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu16i, BFu8s_C_BFu16i)
//============================================================================



static void Test_BFu8s_C_BFu16ll()
{
  {
    init_simple_test("BFu8s_C_BFu16ll");
    static STRUCT_IF_C BFu8s_C_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_C_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu16ll");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu16ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu8s_C_BFu16ll");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu8s_C_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu16ll, BFu8s_C_BFu16ll)
//============================================================================



static void Test_BFu8s_C_BFu16s()
{
  {
    init_simple_test("BFu8s_C_BFu16s");
    static STRUCT_IF_C BFu8s_C_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_C_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu16s");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu16s.v2");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu8s_C_BFu16s");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu8s_C_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu16s, BFu8s_C_BFu16s)
//============================================================================



static void Test_BFu8s_C_BFu17i()
{
  {
    init_simple_test("BFu8s_C_BFu17i");
    static STRUCT_IF_C BFu8s_C_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_C_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu17i");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu17i.v2");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "BFu8s_C_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "BFu8s_C_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu17i, BFu8s_C_BFu17i)
//============================================================================



static void Test_BFu8s_C_BFu17ll()
{
  {
    init_simple_test("BFu8s_C_BFu17ll");
    static STRUCT_IF_C BFu8s_C_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_C_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu17ll");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu17ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "BFu8s_C_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "BFu8s_C_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu17ll, BFu8s_C_BFu17ll)
//============================================================================



static void Test_BFu8s_C_BFu1c()
{
  {
    init_simple_test("BFu8s_C_BFu1c");
    static STRUCT_IF_C BFu8s_C_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_C_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu1c");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu1c.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu8s_C_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu1c, BFu8s_C_BFu1c)
//============================================================================



static void Test_BFu8s_C_BFu1i()
{
  {
    init_simple_test("BFu8s_C_BFu1i");
    static STRUCT_IF_C BFu8s_C_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_C_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu1i");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu1i.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu8s_C_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu1i, BFu8s_C_BFu1i)
//============================================================================



static void Test_BFu8s_C_BFu1ll()
{
  {
    init_simple_test("BFu8s_C_BFu1ll");
    static STRUCT_IF_C BFu8s_C_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_C_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu1ll");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu1ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu8s_C_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu1ll, BFu8s_C_BFu1ll)
//============================================================================



static void Test_BFu8s_C_BFu1s()
{
  {
    init_simple_test("BFu8s_C_BFu1s");
    static STRUCT_IF_C BFu8s_C_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_C_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu1s");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu1s.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu8s_C_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu1s, BFu8s_C_BFu1s)
//============================================================================



static void Test_BFu8s_C_BFu31i()
{
  {
    init_simple_test("BFu8s_C_BFu31i");
    static STRUCT_IF_C BFu8s_C_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_C_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu31i");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu31i.v2");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "BFu8s_C_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "BFu8s_C_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu31i, BFu8s_C_BFu31i)
//============================================================================



static void Test_BFu8s_C_BFu31ll()
{
  {
    init_simple_test("BFu8s_C_BFu31ll");
    static STRUCT_IF_C BFu8s_C_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_C_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu31ll");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu31ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "BFu8s_C_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "BFu8s_C_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu31ll, BFu8s_C_BFu31ll)
//============================================================================



static void Test_BFu8s_C_BFu32i()
{
  {
    init_simple_test("BFu8s_C_BFu32i");
    static STRUCT_IF_C BFu8s_C_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_C_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu32i");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu32i.v2");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "BFu8s_C_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "BFu8s_C_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu32i, BFu8s_C_BFu32i)
//============================================================================



static void Test_BFu8s_C_BFu32ll()
{
  {
    init_simple_test("BFu8s_C_BFu32ll");
    static STRUCT_IF_C BFu8s_C_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_C_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu32ll");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu32ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "BFu8s_C_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "BFu8s_C_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu32ll, BFu8s_C_BFu32ll)
//============================================================================



static void Test_BFu8s_C_BFu33()
{
  {
    init_simple_test("BFu8s_C_BFu33");
    static STRUCT_IF_C BFu8s_C_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_C_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu33");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu33.v2");
    set_bf_and_test(lv, v3, 2, 0, 33, 1, "BFu8s_C_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, hide_ull(1LL<<32), "BFu8s_C_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu33, BFu8s_C_BFu33)
//============================================================================



static void Test_BFu8s_C_BFu7c()
{
  {
    init_simple_test("BFu8s_C_BFu7c");
    static STRUCT_IF_C BFu8s_C_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_C_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu7c");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu7c.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu8s_C_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu8s_C_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu7c, BFu8s_C_BFu7c)
//============================================================================



static void Test_BFu8s_C_BFu7i()
{
  {
    init_simple_test("BFu8s_C_BFu7i");
    static STRUCT_IF_C BFu8s_C_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_C_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu7i");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu7i.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu8s_C_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu8s_C_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu7i, BFu8s_C_BFu7i)
//============================================================================



static void Test_BFu8s_C_BFu7ll()
{
  {
    init_simple_test("BFu8s_C_BFu7ll");
    static STRUCT_IF_C BFu8s_C_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_C_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu7ll");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu7ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu8s_C_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu8s_C_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu7ll, BFu8s_C_BFu7ll)
//============================================================================



static void Test_BFu8s_C_BFu7s()
{
  {
    init_simple_test("BFu8s_C_BFu7s");
    static STRUCT_IF_C BFu8s_C_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_C_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu7s");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu7s.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu8s_C_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu8s_C_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu7s, BFu8s_C_BFu7s)
//============================================================================



static void Test_BFu8s_C_BFu8c()
{
  {
    init_simple_test("BFu8s_C_BFu8c");
    static STRUCT_IF_C BFu8s_C_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_C_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu8c");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu8c.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_C_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu8c, BFu8s_C_BFu8c)
//============================================================================



static void Test_BFu8s_C_BFu8i()
{
  {
    init_simple_test("BFu8s_C_BFu8i");
    static STRUCT_IF_C BFu8s_C_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_C_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu8i");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu8i.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_C_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu8i, BFu8s_C_BFu8i)
//============================================================================



static void Test_BFu8s_C_BFu8ll()
{
  {
    init_simple_test("BFu8s_C_BFu8ll");
    static STRUCT_IF_C BFu8s_C_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_C_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu8ll");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu8ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_C_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu8ll, BFu8s_C_BFu8ll)
//============================================================================



static void Test_BFu8s_C_BFu8s()
{
  {
    init_simple_test("BFu8s_C_BFu8s");
    static STRUCT_IF_C BFu8s_C_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_C_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu8s");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu8s.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_C_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu8s, BFu8s_C_BFu8s)
//============================================================================



static void Test_BFu8s_C_BFu9i()
{
  {
    init_simple_test("BFu8s_C_BFu9i");
    static STRUCT_IF_C BFu8s_C_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_C_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu9i");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu9i.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu8s_C_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu8s_C_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu9i, BFu8s_C_BFu9i)
//============================================================================



static void Test_BFu8s_C_BFu9ll()
{
  {
    init_simple_test("BFu8s_C_BFu9ll");
    static STRUCT_IF_C BFu8s_C_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_C_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu9ll");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu9ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu8s_C_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu8s_C_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu9ll, BFu8s_C_BFu9ll)
//============================================================================



static void Test_BFu8s_C_BFu9s()
{
  {
    init_simple_test("BFu8s_C_BFu9s");
    static STRUCT_IF_C BFu8s_C_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_C_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_BFu9s");
    check_field_offset(lv, v2, 1, "BFu8s_C_BFu9s.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu8s_C_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu8s_C_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_BFu9s, BFu8s_C_BFu9s)
//============================================================================



static void Test_BFu8s_C_C()
{
  {
    init_simple_test("BFu8s_C_C");
    static STRUCT_IF_C BFu8s_C_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_C_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_C");
    check_field_offset(lv, v2, 1, "BFu8s_C_C.v2");
    check_field_offset(lv, v3, 2, "BFu8s_C_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_C, BFu8s_C_C)
//============================================================================



static void Test_BFu8s_C_D()
{
  {
    init_simple_test("BFu8s_C_D");
    static STRUCT_IF_C BFu8s_C_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_C_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_D");
    check_field_offset(lv, v2, 1, "BFu8s_C_D.v2");
    check_field_offset(lv, v3, 2, "BFu8s_C_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_D, BFu8s_C_D)
//============================================================================



static void Test_BFu8s_C_F()
{
  {
    init_simple_test("BFu8s_C_F");
    static STRUCT_IF_C BFu8s_C_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_C_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_F");
    check_field_offset(lv, v2, 1, "BFu8s_C_F.v2");
    check_field_offset(lv, v3, 2, "BFu8s_C_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_F, BFu8s_C_F)
//============================================================================



static void Test_BFu8s_C_I()
{
  {
    init_simple_test("BFu8s_C_I");
    static STRUCT_IF_C BFu8s_C_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_C_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_I");
    check_field_offset(lv, v2, 1, "BFu8s_C_I.v2");
    check_field_offset(lv, v3, 2, "BFu8s_C_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_I, BFu8s_C_I)
//============================================================================



static void Test_BFu8s_C_Ip()
{
  {
    init_simple_test("BFu8s_C_Ip");
    static STRUCT_IF_C BFu8s_C_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_C_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_Ip");
    check_field_offset(lv, v2, 1, "BFu8s_C_Ip.v2");
    check_field_offset(lv, v3, 2, "BFu8s_C_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_Ip, BFu8s_C_Ip)
//============================================================================



static void Test_BFu8s_C_L()
{
  {
    init_simple_test("BFu8s_C_L");
    static STRUCT_IF_C BFu8s_C_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_C_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_L");
    check_field_offset(lv, v2, 1, "BFu8s_C_L.v2");
    check_field_offset(lv, v3, 2, "BFu8s_C_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_L, BFu8s_C_L)
//============================================================================



static void Test_BFu8s_C_S()
{
  {
    init_simple_test("BFu8s_C_S");
    static STRUCT_IF_C BFu8s_C_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_C_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_S");
    check_field_offset(lv, v2, 1, "BFu8s_C_S.v2");
    check_field_offset(lv, v3, 2, "BFu8s_C_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_S, BFu8s_C_S)
//============================================================================



static void Test_BFu8s_C_Uc()
{
  {
    init_simple_test("BFu8s_C_Uc");
    static STRUCT_IF_C BFu8s_C_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_C_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_Uc");
    check_field_offset(lv, v2, 1, "BFu8s_C_Uc.v2");
    check_field_offset(lv, v3, 2, "BFu8s_C_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_Uc, BFu8s_C_Uc)
//============================================================================



static void Test_BFu8s_C_Ui()
{
  {
    init_simple_test("BFu8s_C_Ui");
    static STRUCT_IF_C BFu8s_C_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_C_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_Ui");
    check_field_offset(lv, v2, 1, "BFu8s_C_Ui.v2");
    check_field_offset(lv, v3, 2, "BFu8s_C_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_Ui, BFu8s_C_Ui)
//============================================================================



static void Test_BFu8s_C_Ul()
{
  {
    init_simple_test("BFu8s_C_Ul");
    static STRUCT_IF_C BFu8s_C_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_C_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_Ul");
    check_field_offset(lv, v2, 1, "BFu8s_C_Ul.v2");
    check_field_offset(lv, v3, 2, "BFu8s_C_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_Ul, BFu8s_C_Ul)
//============================================================================



static void Test_BFu8s_C_Us()
{
  {
    init_simple_test("BFu8s_C_Us");
    static STRUCT_IF_C BFu8s_C_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_C_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_Us");
    check_field_offset(lv, v2, 1, "BFu8s_C_Us.v2");
    check_field_offset(lv, v3, 2, "BFu8s_C_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_Us, BFu8s_C_Us)
//============================================================================



static void Test_BFu8s_C_Vp()
{
  {
    init_simple_test("BFu8s_C_Vp");
    static STRUCT_IF_C BFu8s_C_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_C_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_C_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_C_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_C_Vp");
    check_field_offset(lv, v2, 1, "BFu8s_C_Vp.v2");
    check_field_offset(lv, v3, 2, "BFu8s_C_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_C_Vp, BFu8s_C_Vp)
//============================================================================



static void Test_BFu8s_D()
{
  {
    init_simple_test("BFu8s_D");
    static STRUCT_IF_C BFu8s_D lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D");
    check_field_offset(lv, v2, 1, "BFu8s_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D, BFu8s_D)
//============================================================================



static void Test_BFu8s_D_BFu15i()
{
  {
    init_simple_test("BFu8s_D_BFu15i");
    static STRUCT_IF_C BFu8s_D_BFu15i lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_D_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu15i");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu15i.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "BFu8s_D_BFu15i");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "BFu8s_D_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu15i, BFu8s_D_BFu15i)
//============================================================================



static void Test_BFu8s_D_BFu15ll()
{
  {
    init_simple_test("BFu8s_D_BFu15ll");
    static STRUCT_IF_C BFu8s_D_BFu15ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_D_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu15ll");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu15ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "BFu8s_D_BFu15ll");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "BFu8s_D_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu15ll, BFu8s_D_BFu15ll)
//============================================================================



static void Test_BFu8s_D_BFu15s()
{
  {
    init_simple_test("BFu8s_D_BFu15s");
    static STRUCT_IF_C BFu8s_D_BFu15s lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_D_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu15s");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu15s.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "BFu8s_D_BFu15s");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "BFu8s_D_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu15s, BFu8s_D_BFu15s)
//============================================================================



static void Test_BFu8s_D_BFu16i()
{
  {
    init_simple_test("BFu8s_D_BFu16i");
    static STRUCT_IF_C BFu8s_D_BFu16i lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_D_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu16i");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu16i.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "BFu8s_D_BFu16i");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "BFu8s_D_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu16i, BFu8s_D_BFu16i)
//============================================================================



static void Test_BFu8s_D_BFu16ll()
{
  {
    init_simple_test("BFu8s_D_BFu16ll");
    static STRUCT_IF_C BFu8s_D_BFu16ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_D_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu16ll");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu16ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "BFu8s_D_BFu16ll");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "BFu8s_D_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu16ll, BFu8s_D_BFu16ll)
//============================================================================



static void Test_BFu8s_D_BFu16s()
{
  {
    init_simple_test("BFu8s_D_BFu16s");
    static STRUCT_IF_C BFu8s_D_BFu16s lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_D_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu16s");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu16s.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "BFu8s_D_BFu16s");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "BFu8s_D_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu16s, BFu8s_D_BFu16s)
//============================================================================



static void Test_BFu8s_D_BFu17i()
{
  {
    init_simple_test("BFu8s_D_BFu17i");
    static STRUCT_IF_C BFu8s_D_BFu17i lv;
    check2(sizeof(lv), 12, "sizeof(BFu8s_D_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu17i");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu17i.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "BFu8s_D_BFu17i");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "BFu8s_D_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu17i, BFu8s_D_BFu17i)
//============================================================================



static void Test_BFu8s_D_BFu17ll()
{
  {
    init_simple_test("BFu8s_D_BFu17ll");
    static STRUCT_IF_C BFu8s_D_BFu17ll lv;
    check2(sizeof(lv), 12, "sizeof(BFu8s_D_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu17ll");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu17ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "BFu8s_D_BFu17ll");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "BFu8s_D_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu17ll, BFu8s_D_BFu17ll)
//============================================================================



static void Test_BFu8s_D_BFu1c()
{
  {
    init_simple_test("BFu8s_D_BFu1c");
    static STRUCT_IF_C BFu8s_D_BFu1c lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_D_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu1c");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu1c.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "BFu8s_D_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu1c, BFu8s_D_BFu1c)
//============================================================================



static void Test_BFu8s_D_BFu1i()
{
  {
    init_simple_test("BFu8s_D_BFu1i");
    static STRUCT_IF_C BFu8s_D_BFu1i lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_D_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu1i");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu1i.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "BFu8s_D_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu1i, BFu8s_D_BFu1i)
//============================================================================



static void Test_BFu8s_D_BFu1ll()
{
  {
    init_simple_test("BFu8s_D_BFu1ll");
    static STRUCT_IF_C BFu8s_D_BFu1ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_D_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu1ll");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu1ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "BFu8s_D_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu1ll, BFu8s_D_BFu1ll)
//============================================================================



static void Test_BFu8s_D_BFu1s()
{
  {
    init_simple_test("BFu8s_D_BFu1s");
    static STRUCT_IF_C BFu8s_D_BFu1s lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_D_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu1s");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu1s.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "BFu8s_D_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu1s, BFu8s_D_BFu1s)
//============================================================================



static void Test_BFu8s_D_BFu31i()
{
  {
    init_simple_test("BFu8s_D_BFu31i");
    static STRUCT_IF_C BFu8s_D_BFu31i lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_D_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu31i");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu31i.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "BFu8s_D_BFu31i");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "BFu8s_D_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu31i, BFu8s_D_BFu31i)
//============================================================================



static void Test_BFu8s_D_BFu31ll()
{
  {
    init_simple_test("BFu8s_D_BFu31ll");
    static STRUCT_IF_C BFu8s_D_BFu31ll lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_D_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu31ll");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu31ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "BFu8s_D_BFu31ll");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "BFu8s_D_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu31ll, BFu8s_D_BFu31ll)
//============================================================================



static void Test_BFu8s_D_BFu32i()
{
  {
    init_simple_test("BFu8s_D_BFu32i");
    static STRUCT_IF_C BFu8s_D_BFu32i lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_D_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu32i");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu32i.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "BFu8s_D_BFu32i");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "BFu8s_D_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu32i, BFu8s_D_BFu32i)
//============================================================================



static void Test_BFu8s_D_BFu32ll()
{
  {
    init_simple_test("BFu8s_D_BFu32ll");
    static STRUCT_IF_C BFu8s_D_BFu32ll lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_D_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu32ll");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu32ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "BFu8s_D_BFu32ll");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "BFu8s_D_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu32ll, BFu8s_D_BFu32ll)
//============================================================================



static void Test_BFu8s_D_BFu33()
{
  {
    init_simple_test("BFu8s_D_BFu33");
    static STRUCT_IF_C BFu8s_D_BFu33 lv;
    check2(sizeof(lv), 14, "sizeof(BFu8s_D_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu33");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu33.v2");
    set_bf_and_test(lv, v3, 9, 0, 33, 1, "BFu8s_D_BFu33");
    set_bf_and_test(lv, v3, 9, 0, 33, hide_ull(1LL<<32), "BFu8s_D_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu33, BFu8s_D_BFu33)
//============================================================================



static void Test_BFu8s_D_BFu7c()
{
  {
    init_simple_test("BFu8s_D_BFu7c");
    static STRUCT_IF_C BFu8s_D_BFu7c lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_D_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu7c");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu7c.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "BFu8s_D_BFu7c");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "BFu8s_D_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu7c, BFu8s_D_BFu7c)
//============================================================================



static void Test_BFu8s_D_BFu7i()
{
  {
    init_simple_test("BFu8s_D_BFu7i");
    static STRUCT_IF_C BFu8s_D_BFu7i lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_D_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu7i");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu7i.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "BFu8s_D_BFu7i");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "BFu8s_D_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu7i, BFu8s_D_BFu7i)
//============================================================================



static void Test_BFu8s_D_BFu7ll()
{
  {
    init_simple_test("BFu8s_D_BFu7ll");
    static STRUCT_IF_C BFu8s_D_BFu7ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_D_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu7ll");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu7ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "BFu8s_D_BFu7ll");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "BFu8s_D_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu7ll, BFu8s_D_BFu7ll)
//============================================================================



static void Test_BFu8s_D_BFu7s()
{
  {
    init_simple_test("BFu8s_D_BFu7s");
    static STRUCT_IF_C BFu8s_D_BFu7s lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_D_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu7s");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu7s.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "BFu8s_D_BFu7s");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "BFu8s_D_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu7s, BFu8s_D_BFu7s)
//============================================================================



static void Test_BFu8s_D_BFu8c()
{
  {
    init_simple_test("BFu8s_D_BFu8c");
    static STRUCT_IF_C BFu8s_D_BFu8c lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_D_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu8c");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu8c.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "BFu8s_D_BFu8c");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu8c, BFu8s_D_BFu8c)
//============================================================================



static void Test_BFu8s_D_BFu8i()
{
  {
    init_simple_test("BFu8s_D_BFu8i");
    static STRUCT_IF_C BFu8s_D_BFu8i lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_D_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu8i");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu8i.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "BFu8s_D_BFu8i");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu8i, BFu8s_D_BFu8i)
//============================================================================



static void Test_BFu8s_D_BFu8ll()
{
  {
    init_simple_test("BFu8s_D_BFu8ll");
    static STRUCT_IF_C BFu8s_D_BFu8ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_D_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu8ll");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu8ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "BFu8s_D_BFu8ll");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu8ll, BFu8s_D_BFu8ll)
//============================================================================



static void Test_BFu8s_D_BFu8s()
{
  {
    init_simple_test("BFu8s_D_BFu8s");
    static STRUCT_IF_C BFu8s_D_BFu8s lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_D_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu8s");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu8s.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "BFu8s_D_BFu8s");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu8s, BFu8s_D_BFu8s)
//============================================================================



static void Test_BFu8s_D_BFu9i()
{
  {
    init_simple_test("BFu8s_D_BFu9i");
    static STRUCT_IF_C BFu8s_D_BFu9i lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_D_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu9i");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu9i.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "BFu8s_D_BFu9i");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "BFu8s_D_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu9i, BFu8s_D_BFu9i)
//============================================================================



static void Test_BFu8s_D_BFu9ll()
{
  {
    init_simple_test("BFu8s_D_BFu9ll");
    static STRUCT_IF_C BFu8s_D_BFu9ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_D_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu9ll");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu9ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "BFu8s_D_BFu9ll");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "BFu8s_D_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu9ll, BFu8s_D_BFu9ll)
//============================================================================



static void Test_BFu8s_D_BFu9s()
{
  {
    init_simple_test("BFu8s_D_BFu9s");
    static STRUCT_IF_C BFu8s_D_BFu9s lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_D_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_BFu9s");
    check_field_offset(lv, v2, 1, "BFu8s_D_BFu9s.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "BFu8s_D_BFu9s");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "BFu8s_D_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_BFu9s, BFu8s_D_BFu9s)
//============================================================================



static void Test_BFu8s_D_C()
{
  {
    init_simple_test("BFu8s_D_C");
    static STRUCT_IF_C BFu8s_D_C lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_D_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_C");
    check_field_offset(lv, v2, 1, "BFu8s_D_C.v2");
    check_field_offset(lv, v3, 9, "BFu8s_D_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_C, BFu8s_D_C)
//============================================================================



static void Test_BFu8s_D_D()
{
  {
    init_simple_test("BFu8s_D_D");
    static STRUCT_IF_C BFu8s_D_D lv;
    check2(sizeof(lv), 17, "sizeof(BFu8s_D_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_D");
    check_field_offset(lv, v2, 1, "BFu8s_D_D.v2");
    check_field_offset(lv, v3, 9, "BFu8s_D_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_D, BFu8s_D_D)
//============================================================================



static void Test_BFu8s_D_F()
{
  {
    init_simple_test("BFu8s_D_F");
    static STRUCT_IF_C BFu8s_D_F lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_D_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_F");
    check_field_offset(lv, v2, 1, "BFu8s_D_F.v2");
    check_field_offset(lv, v3, 9, "BFu8s_D_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_F, BFu8s_D_F)
//============================================================================



static void Test_BFu8s_D_I()
{
  {
    init_simple_test("BFu8s_D_I");
    static STRUCT_IF_C BFu8s_D_I lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_D_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_I");
    check_field_offset(lv, v2, 1, "BFu8s_D_I.v2");
    check_field_offset(lv, v3, 9, "BFu8s_D_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_I, BFu8s_D_I)
//============================================================================



static void Test_BFu8s_D_Ip()
{
  {
    init_simple_test("BFu8s_D_Ip");
    static STRUCT_IF_C BFu8s_D_Ip lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(BFu8s_D_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_Ip");
    check_field_offset(lv, v2, 1, "BFu8s_D_Ip.v2");
    check_field_offset(lv, v3, 9, "BFu8s_D_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_Ip, BFu8s_D_Ip)
//============================================================================



static void Test_BFu8s_D_L()
{
  {
    init_simple_test("BFu8s_D_L");
    static STRUCT_IF_C BFu8s_D_L lv;
    check2(sizeof(lv), 17, "sizeof(BFu8s_D_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_L");
    check_field_offset(lv, v2, 1, "BFu8s_D_L.v2");
    check_field_offset(lv, v3, 9, "BFu8s_D_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_L, BFu8s_D_L)
//============================================================================



static void Test_BFu8s_D_S()
{
  {
    init_simple_test("BFu8s_D_S");
    static STRUCT_IF_C BFu8s_D_S lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_D_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_S");
    check_field_offset(lv, v2, 1, "BFu8s_D_S.v2");
    check_field_offset(lv, v3, 9, "BFu8s_D_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_S, BFu8s_D_S)
//============================================================================



static void Test_BFu8s_D_Uc()
{
  {
    init_simple_test("BFu8s_D_Uc");
    static STRUCT_IF_C BFu8s_D_Uc lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_D_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_Uc");
    check_field_offset(lv, v2, 1, "BFu8s_D_Uc.v2");
    check_field_offset(lv, v3, 9, "BFu8s_D_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_Uc, BFu8s_D_Uc)
//============================================================================



static void Test_BFu8s_D_Ui()
{
  {
    init_simple_test("BFu8s_D_Ui");
    static STRUCT_IF_C BFu8s_D_Ui lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_D_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_Ui");
    check_field_offset(lv, v2, 1, "BFu8s_D_Ui.v2");
    check_field_offset(lv, v3, 9, "BFu8s_D_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_Ui, BFu8s_D_Ui)
//============================================================================



static void Test_BFu8s_D_Ul()
{
  {
    init_simple_test("BFu8s_D_Ul");
    static STRUCT_IF_C BFu8s_D_Ul lv;
    check2(sizeof(lv), 17, "sizeof(BFu8s_D_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_Ul");
    check_field_offset(lv, v2, 1, "BFu8s_D_Ul.v2");
    check_field_offset(lv, v3, 9, "BFu8s_D_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_Ul, BFu8s_D_Ul)
//============================================================================



static void Test_BFu8s_D_Us()
{
  {
    init_simple_test("BFu8s_D_Us");
    static STRUCT_IF_C BFu8s_D_Us lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_D_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_Us");
    check_field_offset(lv, v2, 1, "BFu8s_D_Us.v2");
    check_field_offset(lv, v3, 9, "BFu8s_D_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_Us, BFu8s_D_Us)
//============================================================================



static void Test_BFu8s_D_Vp()
{
  {
    init_simple_test("BFu8s_D_Vp");
    static STRUCT_IF_C BFu8s_D_Vp lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(BFu8s_D_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_D_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_D_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_D_Vp");
    check_field_offset(lv, v2, 1, "BFu8s_D_Vp.v2");
    check_field_offset(lv, v3, 9, "BFu8s_D_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_D_Vp, BFu8s_D_Vp)
//============================================================================



static void Test_BFu8s_F()
{
  {
    init_simple_test("BFu8s_F");
    static STRUCT_IF_C BFu8s_F lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F");
    check_field_offset(lv, v2, 1, "BFu8s_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F, BFu8s_F)
//============================================================================



static void Test_BFu8s_F_BFu15i()
{
  {
    init_simple_test("BFu8s_F_BFu15i");
    static STRUCT_IF_C BFu8s_F_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_F_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu15i");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu15i.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "BFu8s_F_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "BFu8s_F_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu15i, BFu8s_F_BFu15i)
//============================================================================



static void Test_BFu8s_F_BFu15ll()
{
  {
    init_simple_test("BFu8s_F_BFu15ll");
    static STRUCT_IF_C BFu8s_F_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_F_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu15ll");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu15ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "BFu8s_F_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "BFu8s_F_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu15ll, BFu8s_F_BFu15ll)
//============================================================================



static void Test_BFu8s_F_BFu15s()
{
  {
    init_simple_test("BFu8s_F_BFu15s");
    static STRUCT_IF_C BFu8s_F_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_F_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu15s");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu15s.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "BFu8s_F_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "BFu8s_F_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu15s, BFu8s_F_BFu15s)
//============================================================================



static void Test_BFu8s_F_BFu16i()
{
  {
    init_simple_test("BFu8s_F_BFu16i");
    static STRUCT_IF_C BFu8s_F_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_F_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu16i");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu16i.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "BFu8s_F_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "BFu8s_F_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu16i, BFu8s_F_BFu16i)
//============================================================================



static void Test_BFu8s_F_BFu16ll()
{
  {
    init_simple_test("BFu8s_F_BFu16ll");
    static STRUCT_IF_C BFu8s_F_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_F_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu16ll");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu16ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "BFu8s_F_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "BFu8s_F_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu16ll, BFu8s_F_BFu16ll)
//============================================================================



static void Test_BFu8s_F_BFu16s()
{
  {
    init_simple_test("BFu8s_F_BFu16s");
    static STRUCT_IF_C BFu8s_F_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_F_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu16s");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu16s.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "BFu8s_F_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "BFu8s_F_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu16s, BFu8s_F_BFu16s)
//============================================================================



static void Test_BFu8s_F_BFu17i()
{
  {
    init_simple_test("BFu8s_F_BFu17i");
    static STRUCT_IF_C BFu8s_F_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(BFu8s_F_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu17i");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu17i.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "BFu8s_F_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "BFu8s_F_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu17i, BFu8s_F_BFu17i)
//============================================================================



static void Test_BFu8s_F_BFu17ll()
{
  {
    init_simple_test("BFu8s_F_BFu17ll");
    static STRUCT_IF_C BFu8s_F_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu8s_F_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu17ll");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu17ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "BFu8s_F_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "BFu8s_F_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu17ll, BFu8s_F_BFu17ll)
//============================================================================



static void Test_BFu8s_F_BFu1c()
{
  {
    init_simple_test("BFu8s_F_BFu1c");
    static STRUCT_IF_C BFu8s_F_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_F_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu1c");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu1c.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu8s_F_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu1c, BFu8s_F_BFu1c)
//============================================================================



static void Test_BFu8s_F_BFu1i()
{
  {
    init_simple_test("BFu8s_F_BFu1i");
    static STRUCT_IF_C BFu8s_F_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_F_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu1i");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu1i.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu8s_F_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu1i, BFu8s_F_BFu1i)
//============================================================================



static void Test_BFu8s_F_BFu1ll()
{
  {
    init_simple_test("BFu8s_F_BFu1ll");
    static STRUCT_IF_C BFu8s_F_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_F_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu1ll");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu1ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu8s_F_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu1ll, BFu8s_F_BFu1ll)
//============================================================================



static void Test_BFu8s_F_BFu1s()
{
  {
    init_simple_test("BFu8s_F_BFu1s");
    static STRUCT_IF_C BFu8s_F_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_F_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu1s");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu1s.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu8s_F_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu1s, BFu8s_F_BFu1s)
//============================================================================



static void Test_BFu8s_F_BFu31i()
{
  {
    init_simple_test("BFu8s_F_BFu31i");
    static STRUCT_IF_C BFu8s_F_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_F_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu31i");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu31i.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "BFu8s_F_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "BFu8s_F_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu31i, BFu8s_F_BFu31i)
//============================================================================



static void Test_BFu8s_F_BFu31ll()
{
  {
    init_simple_test("BFu8s_F_BFu31ll");
    static STRUCT_IF_C BFu8s_F_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_F_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu31ll");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu31ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "BFu8s_F_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "BFu8s_F_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu31ll, BFu8s_F_BFu31ll)
//============================================================================



static void Test_BFu8s_F_BFu32i()
{
  {
    init_simple_test("BFu8s_F_BFu32i");
    static STRUCT_IF_C BFu8s_F_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_F_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu32i");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu32i.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "BFu8s_F_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "BFu8s_F_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu32i, BFu8s_F_BFu32i)
//============================================================================



static void Test_BFu8s_F_BFu32ll()
{
  {
    init_simple_test("BFu8s_F_BFu32ll");
    static STRUCT_IF_C BFu8s_F_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_F_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu32ll");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu32ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "BFu8s_F_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "BFu8s_F_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu32ll, BFu8s_F_BFu32ll)
//============================================================================



static void Test_BFu8s_F_BFu33()
{
  {
    init_simple_test("BFu8s_F_BFu33");
    static STRUCT_IF_C BFu8s_F_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_F_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu33");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu33.v2");
    set_bf_and_test(lv, v3, 5, 0, 33, 1, "BFu8s_F_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, hide_ull(1LL<<32), "BFu8s_F_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu33, BFu8s_F_BFu33)
//============================================================================



static void Test_BFu8s_F_BFu7c()
{
  {
    init_simple_test("BFu8s_F_BFu7c");
    static STRUCT_IF_C BFu8s_F_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_F_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu7c");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu7c.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu8s_F_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu8s_F_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu7c, BFu8s_F_BFu7c)
//============================================================================



static void Test_BFu8s_F_BFu7i()
{
  {
    init_simple_test("BFu8s_F_BFu7i");
    static STRUCT_IF_C BFu8s_F_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_F_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu7i");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu7i.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu8s_F_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu8s_F_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu7i, BFu8s_F_BFu7i)
//============================================================================



static void Test_BFu8s_F_BFu7ll()
{
  {
    init_simple_test("BFu8s_F_BFu7ll");
    static STRUCT_IF_C BFu8s_F_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_F_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu7ll");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu7ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu8s_F_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu8s_F_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu7ll, BFu8s_F_BFu7ll)
//============================================================================



static void Test_BFu8s_F_BFu7s()
{
  {
    init_simple_test("BFu8s_F_BFu7s");
    static STRUCT_IF_C BFu8s_F_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_F_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu7s");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu7s.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu8s_F_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu8s_F_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu7s, BFu8s_F_BFu7s)
//============================================================================



static void Test_BFu8s_F_BFu8c()
{
  {
    init_simple_test("BFu8s_F_BFu8c");
    static STRUCT_IF_C BFu8s_F_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_F_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu8c");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu8c.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu8s_F_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu8c, BFu8s_F_BFu8c)
//============================================================================



static void Test_BFu8s_F_BFu8i()
{
  {
    init_simple_test("BFu8s_F_BFu8i");
    static STRUCT_IF_C BFu8s_F_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_F_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu8i");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu8i.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu8s_F_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu8i, BFu8s_F_BFu8i)
//============================================================================



static void Test_BFu8s_F_BFu8ll()
{
  {
    init_simple_test("BFu8s_F_BFu8ll");
    static STRUCT_IF_C BFu8s_F_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_F_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu8ll");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu8ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu8s_F_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu8ll, BFu8s_F_BFu8ll)
//============================================================================



static void Test_BFu8s_F_BFu8s()
{
  {
    init_simple_test("BFu8s_F_BFu8s");
    static STRUCT_IF_C BFu8s_F_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_F_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu8s");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu8s.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu8s_F_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu8s, BFu8s_F_BFu8s)
//============================================================================



static void Test_BFu8s_F_BFu9i()
{
  {
    init_simple_test("BFu8s_F_BFu9i");
    static STRUCT_IF_C BFu8s_F_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_F_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu9i");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu9i.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "BFu8s_F_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "BFu8s_F_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu9i, BFu8s_F_BFu9i)
//============================================================================



static void Test_BFu8s_F_BFu9ll()
{
  {
    init_simple_test("BFu8s_F_BFu9ll");
    static STRUCT_IF_C BFu8s_F_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_F_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu9ll");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu9ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "BFu8s_F_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "BFu8s_F_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu9ll, BFu8s_F_BFu9ll)
//============================================================================



static void Test_BFu8s_F_BFu9s()
{
  {
    init_simple_test("BFu8s_F_BFu9s");
    static STRUCT_IF_C BFu8s_F_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_F_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_BFu9s");
    check_field_offset(lv, v2, 1, "BFu8s_F_BFu9s.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "BFu8s_F_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "BFu8s_F_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_BFu9s, BFu8s_F_BFu9s)
//============================================================================



static void Test_BFu8s_F_C()
{
  {
    init_simple_test("BFu8s_F_C");
    static STRUCT_IF_C BFu8s_F_C lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_F_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_C");
    check_field_offset(lv, v2, 1, "BFu8s_F_C.v2");
    check_field_offset(lv, v3, 5, "BFu8s_F_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_C, BFu8s_F_C)
//============================================================================



static void Test_BFu8s_F_D()
{
  {
    init_simple_test("BFu8s_F_D");
    static STRUCT_IF_C BFu8s_F_D lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_F_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_D");
    check_field_offset(lv, v2, 1, "BFu8s_F_D.v2");
    check_field_offset(lv, v3, 5, "BFu8s_F_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_D, BFu8s_F_D)
//============================================================================



static void Test_BFu8s_F_F()
{
  {
    init_simple_test("BFu8s_F_F");
    static STRUCT_IF_C BFu8s_F_F lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_F_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_F");
    check_field_offset(lv, v2, 1, "BFu8s_F_F.v2");
    check_field_offset(lv, v3, 5, "BFu8s_F_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_F, BFu8s_F_F)
//============================================================================



static void Test_BFu8s_F_I()
{
  {
    init_simple_test("BFu8s_F_I");
    static STRUCT_IF_C BFu8s_F_I lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_F_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_I");
    check_field_offset(lv, v2, 1, "BFu8s_F_I.v2");
    check_field_offset(lv, v3, 5, "BFu8s_F_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_I, BFu8s_F_I)
//============================================================================



static void Test_BFu8s_F_Ip()
{
  {
    init_simple_test("BFu8s_F_Ip");
    static STRUCT_IF_C BFu8s_F_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_F_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_Ip");
    check_field_offset(lv, v2, 1, "BFu8s_F_Ip.v2");
    check_field_offset(lv, v3, 5, "BFu8s_F_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_Ip, BFu8s_F_Ip)
//============================================================================



static void Test_BFu8s_F_L()
{
  {
    init_simple_test("BFu8s_F_L");
    static STRUCT_IF_C BFu8s_F_L lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_F_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_L");
    check_field_offset(lv, v2, 1, "BFu8s_F_L.v2");
    check_field_offset(lv, v3, 5, "BFu8s_F_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_L, BFu8s_F_L)
//============================================================================



static void Test_BFu8s_F_S()
{
  {
    init_simple_test("BFu8s_F_S");
    static STRUCT_IF_C BFu8s_F_S lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_F_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_S");
    check_field_offset(lv, v2, 1, "BFu8s_F_S.v2");
    check_field_offset(lv, v3, 5, "BFu8s_F_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_S, BFu8s_F_S)
//============================================================================



static void Test_BFu8s_F_Uc()
{
  {
    init_simple_test("BFu8s_F_Uc");
    static STRUCT_IF_C BFu8s_F_Uc lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_F_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_Uc");
    check_field_offset(lv, v2, 1, "BFu8s_F_Uc.v2");
    check_field_offset(lv, v3, 5, "BFu8s_F_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_Uc, BFu8s_F_Uc)
//============================================================================



static void Test_BFu8s_F_Ui()
{
  {
    init_simple_test("BFu8s_F_Ui");
    static STRUCT_IF_C BFu8s_F_Ui lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_F_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_Ui");
    check_field_offset(lv, v2, 1, "BFu8s_F_Ui.v2");
    check_field_offset(lv, v3, 5, "BFu8s_F_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_Ui, BFu8s_F_Ui)
//============================================================================



static void Test_BFu8s_F_Ul()
{
  {
    init_simple_test("BFu8s_F_Ul");
    static STRUCT_IF_C BFu8s_F_Ul lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_F_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_Ul");
    check_field_offset(lv, v2, 1, "BFu8s_F_Ul.v2");
    check_field_offset(lv, v3, 5, "BFu8s_F_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_Ul, BFu8s_F_Ul)
//============================================================================



static void Test_BFu8s_F_Us()
{
  {
    init_simple_test("BFu8s_F_Us");
    static STRUCT_IF_C BFu8s_F_Us lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_F_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_Us");
    check_field_offset(lv, v2, 1, "BFu8s_F_Us.v2");
    check_field_offset(lv, v3, 5, "BFu8s_F_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_Us, BFu8s_F_Us)
//============================================================================



static void Test_BFu8s_F_Vp()
{
  {
    init_simple_test("BFu8s_F_Vp");
    static STRUCT_IF_C BFu8s_F_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_F_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_F_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_F_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_F_Vp");
    check_field_offset(lv, v2, 1, "BFu8s_F_Vp.v2");
    check_field_offset(lv, v3, 5, "BFu8s_F_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_F_Vp, BFu8s_F_Vp)
//============================================================================



static void Test_BFu8s_I()
{
  {
    init_simple_test("BFu8s_I");
    static STRUCT_IF_C BFu8s_I lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I");
    check_field_offset(lv, v2, 1, "BFu8s_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I, BFu8s_I)
//============================================================================



static void Test_BFu8s_I_BFu15i()
{
  {
    init_simple_test("BFu8s_I_BFu15i");
    static STRUCT_IF_C BFu8s_I_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_I_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu15i");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu15i.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "BFu8s_I_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "BFu8s_I_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu15i, BFu8s_I_BFu15i)
//============================================================================



static void Test_BFu8s_I_BFu15ll()
{
  {
    init_simple_test("BFu8s_I_BFu15ll");
    static STRUCT_IF_C BFu8s_I_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_I_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu15ll");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu15ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "BFu8s_I_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "BFu8s_I_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu15ll, BFu8s_I_BFu15ll)
//============================================================================



static void Test_BFu8s_I_BFu15s()
{
  {
    init_simple_test("BFu8s_I_BFu15s");
    static STRUCT_IF_C BFu8s_I_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_I_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu15s");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu15s.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "BFu8s_I_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "BFu8s_I_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu15s, BFu8s_I_BFu15s)
//============================================================================



static void Test_BFu8s_I_BFu16i()
{
  {
    init_simple_test("BFu8s_I_BFu16i");
    static STRUCT_IF_C BFu8s_I_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_I_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu16i");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu16i.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "BFu8s_I_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "BFu8s_I_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu16i, BFu8s_I_BFu16i)
//============================================================================



static void Test_BFu8s_I_BFu16ll()
{
  {
    init_simple_test("BFu8s_I_BFu16ll");
    static STRUCT_IF_C BFu8s_I_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_I_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu16ll");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu16ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "BFu8s_I_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "BFu8s_I_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu16ll, BFu8s_I_BFu16ll)
//============================================================================



static void Test_BFu8s_I_BFu16s()
{
  {
    init_simple_test("BFu8s_I_BFu16s");
    static STRUCT_IF_C BFu8s_I_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_I_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu16s");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu16s.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "BFu8s_I_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "BFu8s_I_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu16s, BFu8s_I_BFu16s)
//============================================================================



static void Test_BFu8s_I_BFu17i()
{
  {
    init_simple_test("BFu8s_I_BFu17i");
    static STRUCT_IF_C BFu8s_I_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(BFu8s_I_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu17i");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu17i.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "BFu8s_I_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "BFu8s_I_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu17i, BFu8s_I_BFu17i)
//============================================================================



static void Test_BFu8s_I_BFu17ll()
{
  {
    init_simple_test("BFu8s_I_BFu17ll");
    static STRUCT_IF_C BFu8s_I_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu8s_I_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu17ll");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu17ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "BFu8s_I_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "BFu8s_I_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu17ll, BFu8s_I_BFu17ll)
//============================================================================



static void Test_BFu8s_I_BFu1c()
{
  {
    init_simple_test("BFu8s_I_BFu1c");
    static STRUCT_IF_C BFu8s_I_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_I_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu1c");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu1c.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu8s_I_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu1c, BFu8s_I_BFu1c)
//============================================================================



static void Test_BFu8s_I_BFu1i()
{
  {
    init_simple_test("BFu8s_I_BFu1i");
    static STRUCT_IF_C BFu8s_I_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_I_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu1i");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu1i.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu8s_I_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu1i, BFu8s_I_BFu1i)
//============================================================================



static void Test_BFu8s_I_BFu1ll()
{
  {
    init_simple_test("BFu8s_I_BFu1ll");
    static STRUCT_IF_C BFu8s_I_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_I_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu1ll");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu1ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu8s_I_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu1ll, BFu8s_I_BFu1ll)
//============================================================================



static void Test_BFu8s_I_BFu1s()
{
  {
    init_simple_test("BFu8s_I_BFu1s");
    static STRUCT_IF_C BFu8s_I_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_I_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu1s");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu1s.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu8s_I_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu1s, BFu8s_I_BFu1s)
//============================================================================



static void Test_BFu8s_I_BFu31i()
{
  {
    init_simple_test("BFu8s_I_BFu31i");
    static STRUCT_IF_C BFu8s_I_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_I_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu31i");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu31i.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "BFu8s_I_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "BFu8s_I_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu31i, BFu8s_I_BFu31i)
//============================================================================



static void Test_BFu8s_I_BFu31ll()
{
  {
    init_simple_test("BFu8s_I_BFu31ll");
    static STRUCT_IF_C BFu8s_I_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_I_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu31ll");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu31ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "BFu8s_I_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "BFu8s_I_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu31ll, BFu8s_I_BFu31ll)
//============================================================================



static void Test_BFu8s_I_BFu32i()
{
  {
    init_simple_test("BFu8s_I_BFu32i");
    static STRUCT_IF_C BFu8s_I_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_I_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu32i");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu32i.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "BFu8s_I_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "BFu8s_I_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu32i, BFu8s_I_BFu32i)
//============================================================================



static void Test_BFu8s_I_BFu32ll()
{
  {
    init_simple_test("BFu8s_I_BFu32ll");
    static STRUCT_IF_C BFu8s_I_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_I_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu32ll");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu32ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "BFu8s_I_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "BFu8s_I_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu32ll, BFu8s_I_BFu32ll)
//============================================================================



static void Test_BFu8s_I_BFu33()
{
  {
    init_simple_test("BFu8s_I_BFu33");
    static STRUCT_IF_C BFu8s_I_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_I_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu33");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu33.v2");
    set_bf_and_test(lv, v3, 5, 0, 33, 1, "BFu8s_I_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, hide_ull(1LL<<32), "BFu8s_I_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu33, BFu8s_I_BFu33)
//============================================================================



static void Test_BFu8s_I_BFu7c()
{
  {
    init_simple_test("BFu8s_I_BFu7c");
    static STRUCT_IF_C BFu8s_I_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_I_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu7c");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu7c.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu8s_I_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu8s_I_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu7c, BFu8s_I_BFu7c)
//============================================================================



static void Test_BFu8s_I_BFu7i()
{
  {
    init_simple_test("BFu8s_I_BFu7i");
    static STRUCT_IF_C BFu8s_I_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_I_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu7i");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu7i.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu8s_I_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu8s_I_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu7i, BFu8s_I_BFu7i)
//============================================================================



static void Test_BFu8s_I_BFu7ll()
{
  {
    init_simple_test("BFu8s_I_BFu7ll");
    static STRUCT_IF_C BFu8s_I_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_I_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu7ll");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu7ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu8s_I_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu8s_I_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu7ll, BFu8s_I_BFu7ll)
//============================================================================



static void Test_BFu8s_I_BFu7s()
{
  {
    init_simple_test("BFu8s_I_BFu7s");
    static STRUCT_IF_C BFu8s_I_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_I_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu7s");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu7s.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu8s_I_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu8s_I_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu7s, BFu8s_I_BFu7s)
//============================================================================



static void Test_BFu8s_I_BFu8c()
{
  {
    init_simple_test("BFu8s_I_BFu8c");
    static STRUCT_IF_C BFu8s_I_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_I_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu8c");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu8c.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu8s_I_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu8c, BFu8s_I_BFu8c)
//============================================================================



static void Test_BFu8s_I_BFu8i()
{
  {
    init_simple_test("BFu8s_I_BFu8i");
    static STRUCT_IF_C BFu8s_I_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_I_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu8i");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu8i.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu8s_I_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu8i, BFu8s_I_BFu8i)
//============================================================================



static void Test_BFu8s_I_BFu8ll()
{
  {
    init_simple_test("BFu8s_I_BFu8ll");
    static STRUCT_IF_C BFu8s_I_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_I_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu8ll");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu8ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu8s_I_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu8ll, BFu8s_I_BFu8ll)
//============================================================================



static void Test_BFu8s_I_BFu8s()
{
  {
    init_simple_test("BFu8s_I_BFu8s");
    static STRUCT_IF_C BFu8s_I_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_I_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu8s");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu8s.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu8s_I_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu8s, BFu8s_I_BFu8s)
//============================================================================



static void Test_BFu8s_I_BFu9i()
{
  {
    init_simple_test("BFu8s_I_BFu9i");
    static STRUCT_IF_C BFu8s_I_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_I_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu9i");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu9i.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "BFu8s_I_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "BFu8s_I_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu9i, BFu8s_I_BFu9i)
//============================================================================



static void Test_BFu8s_I_BFu9ll()
{
  {
    init_simple_test("BFu8s_I_BFu9ll");
    static STRUCT_IF_C BFu8s_I_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_I_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu9ll");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu9ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "BFu8s_I_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "BFu8s_I_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu9ll, BFu8s_I_BFu9ll)
//============================================================================



static void Test_BFu8s_I_BFu9s()
{
  {
    init_simple_test("BFu8s_I_BFu9s");
    static STRUCT_IF_C BFu8s_I_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_I_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_BFu9s");
    check_field_offset(lv, v2, 1, "BFu8s_I_BFu9s.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "BFu8s_I_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "BFu8s_I_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_BFu9s, BFu8s_I_BFu9s)
//============================================================================



static void Test_BFu8s_I_C()
{
  {
    init_simple_test("BFu8s_I_C");
    static STRUCT_IF_C BFu8s_I_C lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_I_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_C");
    check_field_offset(lv, v2, 1, "BFu8s_I_C.v2");
    check_field_offset(lv, v3, 5, "BFu8s_I_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_C, BFu8s_I_C)
//============================================================================



static void Test_BFu8s_I_D()
{
  {
    init_simple_test("BFu8s_I_D");
    static STRUCT_IF_C BFu8s_I_D lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_I_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_D");
    check_field_offset(lv, v2, 1, "BFu8s_I_D.v2");
    check_field_offset(lv, v3, 5, "BFu8s_I_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_D, BFu8s_I_D)
//============================================================================



static void Test_BFu8s_I_F()
{
  {
    init_simple_test("BFu8s_I_F");
    static STRUCT_IF_C BFu8s_I_F lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_I_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_F");
    check_field_offset(lv, v2, 1, "BFu8s_I_F.v2");
    check_field_offset(lv, v3, 5, "BFu8s_I_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_F, BFu8s_I_F)
//============================================================================



static void Test_BFu8s_I_I()
{
  {
    init_simple_test("BFu8s_I_I");
    static STRUCT_IF_C BFu8s_I_I lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_I_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_I");
    check_field_offset(lv, v2, 1, "BFu8s_I_I.v2");
    check_field_offset(lv, v3, 5, "BFu8s_I_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_I, BFu8s_I_I)
//============================================================================



static void Test_BFu8s_I_Ip()
{
  {
    init_simple_test("BFu8s_I_Ip");
    static STRUCT_IF_C BFu8s_I_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_I_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_Ip");
    check_field_offset(lv, v2, 1, "BFu8s_I_Ip.v2");
    check_field_offset(lv, v3, 5, "BFu8s_I_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_Ip, BFu8s_I_Ip)
//============================================================================



static void Test_BFu8s_I_L()
{
  {
    init_simple_test("BFu8s_I_L");
    static STRUCT_IF_C BFu8s_I_L lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_I_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_L");
    check_field_offset(lv, v2, 1, "BFu8s_I_L.v2");
    check_field_offset(lv, v3, 5, "BFu8s_I_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_L, BFu8s_I_L)
//============================================================================



static void Test_BFu8s_I_S()
{
  {
    init_simple_test("BFu8s_I_S");
    static STRUCT_IF_C BFu8s_I_S lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_I_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_S");
    check_field_offset(lv, v2, 1, "BFu8s_I_S.v2");
    check_field_offset(lv, v3, 5, "BFu8s_I_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_S, BFu8s_I_S)
//============================================================================



static void Test_BFu8s_I_Uc()
{
  {
    init_simple_test("BFu8s_I_Uc");
    static STRUCT_IF_C BFu8s_I_Uc lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_I_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_Uc");
    check_field_offset(lv, v2, 1, "BFu8s_I_Uc.v2");
    check_field_offset(lv, v3, 5, "BFu8s_I_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_Uc, BFu8s_I_Uc)
//============================================================================



static void Test_BFu8s_I_Ui()
{
  {
    init_simple_test("BFu8s_I_Ui");
    static STRUCT_IF_C BFu8s_I_Ui lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_I_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_Ui");
    check_field_offset(lv, v2, 1, "BFu8s_I_Ui.v2");
    check_field_offset(lv, v3, 5, "BFu8s_I_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_Ui, BFu8s_I_Ui)
//============================================================================



static void Test_BFu8s_I_Ul()
{
  {
    init_simple_test("BFu8s_I_Ul");
    static STRUCT_IF_C BFu8s_I_Ul lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_I_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_Ul");
    check_field_offset(lv, v2, 1, "BFu8s_I_Ul.v2");
    check_field_offset(lv, v3, 5, "BFu8s_I_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_Ul, BFu8s_I_Ul)
//============================================================================



static void Test_BFu8s_I_Us()
{
  {
    init_simple_test("BFu8s_I_Us");
    static STRUCT_IF_C BFu8s_I_Us lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_I_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_Us");
    check_field_offset(lv, v2, 1, "BFu8s_I_Us.v2");
    check_field_offset(lv, v3, 5, "BFu8s_I_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_Us, BFu8s_I_Us)
//============================================================================



static void Test_BFu8s_I_Vp()
{
  {
    init_simple_test("BFu8s_I_Vp");
    static STRUCT_IF_C BFu8s_I_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_I_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_I_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_I_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_I_Vp");
    check_field_offset(lv, v2, 1, "BFu8s_I_Vp.v2");
    check_field_offset(lv, v3, 5, "BFu8s_I_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_I_Vp, BFu8s_I_Vp)
//============================================================================



static void Test_BFu8s_Ip()
{
  {
    init_simple_test("BFu8s_Ip");
    static STRUCT_IF_C BFu8s_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(BFu8s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip");
    check_field_offset(lv, v2, 1, "BFu8s_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip, BFu8s_Ip)
//============================================================================



static void Test_BFu8s_Ip_BFu15i()
{
  {
    init_simple_test("BFu8s_Ip_BFu15i");
    static STRUCT_IF_C BFu8s_Ip_BFu15i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Ip_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu15i");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu15i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "BFu8s_Ip_BFu15i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "BFu8s_Ip_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu15i, BFu8s_Ip_BFu15i)
//============================================================================



static void Test_BFu8s_Ip_BFu15ll()
{
  {
    init_simple_test("BFu8s_Ip_BFu15ll");
    static STRUCT_IF_C BFu8s_Ip_BFu15ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Ip_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu15ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu15ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "BFu8s_Ip_BFu15ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "BFu8s_Ip_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu15ll, BFu8s_Ip_BFu15ll)
//============================================================================



static void Test_BFu8s_Ip_BFu15s()
{
  {
    init_simple_test("BFu8s_Ip_BFu15s");
    static STRUCT_IF_C BFu8s_Ip_BFu15s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Ip_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu15s");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu15s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "BFu8s_Ip_BFu15s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "BFu8s_Ip_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu15s, BFu8s_Ip_BFu15s)
//============================================================================



static void Test_BFu8s_Ip_BFu16i()
{
  {
    init_simple_test("BFu8s_Ip_BFu16i");
    static STRUCT_IF_C BFu8s_Ip_BFu16i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Ip_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu16i");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu16i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "BFu8s_Ip_BFu16i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "BFu8s_Ip_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu16i, BFu8s_Ip_BFu16i)
//============================================================================



static void Test_BFu8s_Ip_BFu16ll()
{
  {
    init_simple_test("BFu8s_Ip_BFu16ll");
    static STRUCT_IF_C BFu8s_Ip_BFu16ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Ip_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu16ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu16ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "BFu8s_Ip_BFu16ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "BFu8s_Ip_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu16ll, BFu8s_Ip_BFu16ll)
//============================================================================



static void Test_BFu8s_Ip_BFu16s()
{
  {
    init_simple_test("BFu8s_Ip_BFu16s");
    static STRUCT_IF_C BFu8s_Ip_BFu16s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Ip_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu16s");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu16s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "BFu8s_Ip_BFu16s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "BFu8s_Ip_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu16s, BFu8s_Ip_BFu16s)
//============================================================================



static void Test_BFu8s_Ip_BFu17i()
{
  {
    init_simple_test("BFu8s_Ip_BFu17i");
    static STRUCT_IF_C BFu8s_Ip_BFu17i lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu8s_Ip_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu17i");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu17i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, 1, "BFu8s_Ip_BFu17i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, hide_ull(1LL<<16), "BFu8s_Ip_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu17i, BFu8s_Ip_BFu17i)
//============================================================================



static void Test_BFu8s_Ip_BFu17ll()
{
  {
    init_simple_test("BFu8s_Ip_BFu17ll");
    static STRUCT_IF_C BFu8s_Ip_BFu17ll lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu8s_Ip_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu17ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu17ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, 1, "BFu8s_Ip_BFu17ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, hide_ull(1LL<<16), "BFu8s_Ip_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu17ll, BFu8s_Ip_BFu17ll)
//============================================================================



static void Test_BFu8s_Ip_BFu1c()
{
  {
    init_simple_test("BFu8s_Ip_BFu1c");
    static STRUCT_IF_C BFu8s_Ip_BFu1c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Ip_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu1c");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu1c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "BFu8s_Ip_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu1c, BFu8s_Ip_BFu1c)
//============================================================================



static void Test_BFu8s_Ip_BFu1i()
{
  {
    init_simple_test("BFu8s_Ip_BFu1i");
    static STRUCT_IF_C BFu8s_Ip_BFu1i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Ip_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu1i");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu1i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "BFu8s_Ip_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu1i, BFu8s_Ip_BFu1i)
//============================================================================



static void Test_BFu8s_Ip_BFu1ll()
{
  {
    init_simple_test("BFu8s_Ip_BFu1ll");
    static STRUCT_IF_C BFu8s_Ip_BFu1ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Ip_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu1ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu1ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "BFu8s_Ip_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu1ll, BFu8s_Ip_BFu1ll)
//============================================================================



static void Test_BFu8s_Ip_BFu1s()
{
  {
    init_simple_test("BFu8s_Ip_BFu1s");
    static STRUCT_IF_C BFu8s_Ip_BFu1s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Ip_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu1s");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu1s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "BFu8s_Ip_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu1s, BFu8s_Ip_BFu1s)
//============================================================================



static void Test_BFu8s_Ip_BFu31i()
{
  {
    init_simple_test("BFu8s_Ip_BFu31i");
    static STRUCT_IF_C BFu8s_Ip_BFu31i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_Ip_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu31i");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu31i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, 1, "BFu8s_Ip_BFu31i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, hide_ull(1LL<<30), "BFu8s_Ip_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu31i, BFu8s_Ip_BFu31i)
//============================================================================



static void Test_BFu8s_Ip_BFu31ll()
{
  {
    init_simple_test("BFu8s_Ip_BFu31ll");
    static STRUCT_IF_C BFu8s_Ip_BFu31ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_Ip_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu31ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu31ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, 1, "BFu8s_Ip_BFu31ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, hide_ull(1LL<<30), "BFu8s_Ip_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu31ll, BFu8s_Ip_BFu31ll)
//============================================================================



static void Test_BFu8s_Ip_BFu32i()
{
  {
    init_simple_test("BFu8s_Ip_BFu32i");
    static STRUCT_IF_C BFu8s_Ip_BFu32i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_Ip_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu32i");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu32i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, 1, "BFu8s_Ip_BFu32i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, hide_ull(1LL<<31), "BFu8s_Ip_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu32i, BFu8s_Ip_BFu32i)
//============================================================================



static void Test_BFu8s_Ip_BFu32ll()
{
  {
    init_simple_test("BFu8s_Ip_BFu32ll");
    static STRUCT_IF_C BFu8s_Ip_BFu32ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_Ip_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu32ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu32ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, 1, "BFu8s_Ip_BFu32ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, hide_ull(1LL<<31), "BFu8s_Ip_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu32ll, BFu8s_Ip_BFu32ll)
//============================================================================



static void Test_BFu8s_Ip_BFu33()
{
  {
    init_simple_test("BFu8s_Ip_BFu33");
    static STRUCT_IF_C BFu8s_Ip_BFu33 lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu8s_Ip_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu33");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu33.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 33, 1, "BFu8s_Ip_BFu33");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 33, hide_ull(1LL<<32), "BFu8s_Ip_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu33, BFu8s_Ip_BFu33)
//============================================================================



static void Test_BFu8s_Ip_BFu7c()
{
  {
    init_simple_test("BFu8s_Ip_BFu7c");
    static STRUCT_IF_C BFu8s_Ip_BFu7c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Ip_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu7c");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu7c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "BFu8s_Ip_BFu7c");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "BFu8s_Ip_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu7c, BFu8s_Ip_BFu7c)
//============================================================================



static void Test_BFu8s_Ip_BFu7i()
{
  {
    init_simple_test("BFu8s_Ip_BFu7i");
    static STRUCT_IF_C BFu8s_Ip_BFu7i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Ip_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu7i");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu7i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "BFu8s_Ip_BFu7i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "BFu8s_Ip_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu7i, BFu8s_Ip_BFu7i)
//============================================================================



static void Test_BFu8s_Ip_BFu7ll()
{
  {
    init_simple_test("BFu8s_Ip_BFu7ll");
    static STRUCT_IF_C BFu8s_Ip_BFu7ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Ip_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu7ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu7ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "BFu8s_Ip_BFu7ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "BFu8s_Ip_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu7ll, BFu8s_Ip_BFu7ll)
//============================================================================



static void Test_BFu8s_Ip_BFu7s()
{
  {
    init_simple_test("BFu8s_Ip_BFu7s");
    static STRUCT_IF_C BFu8s_Ip_BFu7s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Ip_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu7s");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu7s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "BFu8s_Ip_BFu7s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "BFu8s_Ip_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu7s, BFu8s_Ip_BFu7s)
//============================================================================



static void Test_BFu8s_Ip_BFu8c()
{
  {
    init_simple_test("BFu8s_Ip_BFu8c");
    static STRUCT_IF_C BFu8s_Ip_BFu8c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Ip_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu8c");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu8c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "BFu8s_Ip_BFu8c");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu8c, BFu8s_Ip_BFu8c)
//============================================================================



static void Test_BFu8s_Ip_BFu8i()
{
  {
    init_simple_test("BFu8s_Ip_BFu8i");
    static STRUCT_IF_C BFu8s_Ip_BFu8i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Ip_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu8i");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu8i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "BFu8s_Ip_BFu8i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu8i, BFu8s_Ip_BFu8i)
//============================================================================



static void Test_BFu8s_Ip_BFu8ll()
{
  {
    init_simple_test("BFu8s_Ip_BFu8ll");
    static STRUCT_IF_C BFu8s_Ip_BFu8ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Ip_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu8ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu8ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "BFu8s_Ip_BFu8ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu8ll, BFu8s_Ip_BFu8ll)
//============================================================================



static void Test_BFu8s_Ip_BFu8s()
{
  {
    init_simple_test("BFu8s_Ip_BFu8s");
    static STRUCT_IF_C BFu8s_Ip_BFu8s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Ip_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu8s");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu8s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "BFu8s_Ip_BFu8s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu8s, BFu8s_Ip_BFu8s)
//============================================================================



static void Test_BFu8s_Ip_BFu9i()
{
  {
    init_simple_test("BFu8s_Ip_BFu9i");
    static STRUCT_IF_C BFu8s_Ip_BFu9i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Ip_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu9i");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu9i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "BFu8s_Ip_BFu9i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "BFu8s_Ip_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu9i, BFu8s_Ip_BFu9i)
//============================================================================



static void Test_BFu8s_Ip_BFu9ll()
{
  {
    init_simple_test("BFu8s_Ip_BFu9ll");
    static STRUCT_IF_C BFu8s_Ip_BFu9ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Ip_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu9ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu9ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "BFu8s_Ip_BFu9ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "BFu8s_Ip_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu9ll, BFu8s_Ip_BFu9ll)
//============================================================================



static void Test_BFu8s_Ip_BFu9s()
{
  {
    init_simple_test("BFu8s_Ip_BFu9s");
    static STRUCT_IF_C BFu8s_Ip_BFu9s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Ip_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_BFu9s");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_BFu9s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "BFu8s_Ip_BFu9s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "BFu8s_Ip_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_BFu9s, BFu8s_Ip_BFu9s)
//============================================================================



static void Test_BFu8s_Ip_C()
{
  {
    init_simple_test("BFu8s_Ip_C");
    static STRUCT_IF_C BFu8s_Ip_C lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Ip_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_C");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_C.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Ip_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_C, BFu8s_Ip_C)
//============================================================================



static void Test_BFu8s_Ip_D()
{
  {
    init_simple_test("BFu8s_Ip_D");
    static STRUCT_IF_C BFu8s_Ip_D lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(BFu8s_Ip_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_D");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_D.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Ip_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_D, BFu8s_Ip_D)
//============================================================================



static void Test_BFu8s_Ip_F()
{
  {
    init_simple_test("BFu8s_Ip_F");
    static STRUCT_IF_C BFu8s_Ip_F lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_Ip_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_F");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_F.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Ip_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_F, BFu8s_Ip_F)
//============================================================================



static void Test_BFu8s_Ip_I()
{
  {
    init_simple_test("BFu8s_Ip_I");
    static STRUCT_IF_C BFu8s_Ip_I lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_Ip_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_I");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_I.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Ip_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_I, BFu8s_Ip_I)
//============================================================================



static void Test_BFu8s_Ip_Ip()
{
  {
    init_simple_test("BFu8s_Ip_Ip");
    static STRUCT_IF_C BFu8s_Ip_Ip lv;
    check2(sizeof(lv), ABISELECT(17,9), "sizeof(BFu8s_Ip_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_Ip");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_Ip.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Ip_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_Ip, BFu8s_Ip_Ip)
//============================================================================



static void Test_BFu8s_Ip_L()
{
  {
    init_simple_test("BFu8s_Ip_L");
    static STRUCT_IF_C BFu8s_Ip_L lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(BFu8s_Ip_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_L");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_L.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Ip_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_L, BFu8s_Ip_L)
//============================================================================



static void Test_BFu8s_Ip_S()
{
  {
    init_simple_test("BFu8s_Ip_S");
    static STRUCT_IF_C BFu8s_Ip_S lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Ip_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_S");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_S.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Ip_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_S, BFu8s_Ip_S)
//============================================================================



static void Test_BFu8s_Ip_Uc()
{
  {
    init_simple_test("BFu8s_Ip_Uc");
    static STRUCT_IF_C BFu8s_Ip_Uc lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Ip_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_Uc");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_Uc.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Ip_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_Uc, BFu8s_Ip_Uc)
//============================================================================



static void Test_BFu8s_Ip_Ui()
{
  {
    init_simple_test("BFu8s_Ip_Ui");
    static STRUCT_IF_C BFu8s_Ip_Ui lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_Ip_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_Ui");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_Ui.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Ip_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_Ui, BFu8s_Ip_Ui)
//============================================================================



static void Test_BFu8s_Ip_Ul()
{
  {
    init_simple_test("BFu8s_Ip_Ul");
    static STRUCT_IF_C BFu8s_Ip_Ul lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(BFu8s_Ip_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_Ul");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_Ul.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Ip_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_Ul, BFu8s_Ip_Ul)
//============================================================================



static void Test_BFu8s_Ip_Us()
{
  {
    init_simple_test("BFu8s_Ip_Us");
    static STRUCT_IF_C BFu8s_Ip_Us lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Ip_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_Us");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_Us.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Ip_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_Us, BFu8s_Ip_Us)
//============================================================================



static void Test_BFu8s_Ip_Vp()
{
  {
    init_simple_test("BFu8s_Ip_Vp");
    static STRUCT_IF_C BFu8s_Ip_Vp lv;
    check2(sizeof(lv), ABISELECT(17,9), "sizeof(BFu8s_Ip_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ip_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ip_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ip_Vp");
    check_field_offset(lv, v2, 1, "BFu8s_Ip_Vp.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Ip_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ip_Vp, BFu8s_Ip_Vp)
//============================================================================



static void Test_BFu8s_L()
{
  {
    init_simple_test("BFu8s_L");
    static STRUCT_IF_C BFu8s_L lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L");
    check_field_offset(lv, v2, 1, "BFu8s_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L, BFu8s_L)
//============================================================================



static void Test_BFu8s_L_BFu15i()
{
  {
    init_simple_test("BFu8s_L_BFu15i");
    static STRUCT_IF_C BFu8s_L_BFu15i lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_L_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu15i");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu15i.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "BFu8s_L_BFu15i");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "BFu8s_L_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu15i, BFu8s_L_BFu15i)
//============================================================================



static void Test_BFu8s_L_BFu15ll()
{
  {
    init_simple_test("BFu8s_L_BFu15ll");
    static STRUCT_IF_C BFu8s_L_BFu15ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_L_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu15ll");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu15ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "BFu8s_L_BFu15ll");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "BFu8s_L_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu15ll, BFu8s_L_BFu15ll)
//============================================================================



static void Test_BFu8s_L_BFu15s()
{
  {
    init_simple_test("BFu8s_L_BFu15s");
    static STRUCT_IF_C BFu8s_L_BFu15s lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_L_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu15s");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu15s.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "BFu8s_L_BFu15s");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "BFu8s_L_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu15s, BFu8s_L_BFu15s)
//============================================================================



static void Test_BFu8s_L_BFu16i()
{
  {
    init_simple_test("BFu8s_L_BFu16i");
    static STRUCT_IF_C BFu8s_L_BFu16i lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_L_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu16i");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu16i.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "BFu8s_L_BFu16i");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "BFu8s_L_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu16i, BFu8s_L_BFu16i)
//============================================================================



static void Test_BFu8s_L_BFu16ll()
{
  {
    init_simple_test("BFu8s_L_BFu16ll");
    static STRUCT_IF_C BFu8s_L_BFu16ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_L_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu16ll");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu16ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "BFu8s_L_BFu16ll");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "BFu8s_L_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu16ll, BFu8s_L_BFu16ll)
//============================================================================



static void Test_BFu8s_L_BFu16s()
{
  {
    init_simple_test("BFu8s_L_BFu16s");
    static STRUCT_IF_C BFu8s_L_BFu16s lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_L_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu16s");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu16s.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "BFu8s_L_BFu16s");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "BFu8s_L_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu16s, BFu8s_L_BFu16s)
//============================================================================



static void Test_BFu8s_L_BFu17i()
{
  {
    init_simple_test("BFu8s_L_BFu17i");
    static STRUCT_IF_C BFu8s_L_BFu17i lv;
    check2(sizeof(lv), 12, "sizeof(BFu8s_L_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu17i");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu17i.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "BFu8s_L_BFu17i");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "BFu8s_L_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu17i, BFu8s_L_BFu17i)
//============================================================================



static void Test_BFu8s_L_BFu17ll()
{
  {
    init_simple_test("BFu8s_L_BFu17ll");
    static STRUCT_IF_C BFu8s_L_BFu17ll lv;
    check2(sizeof(lv), 12, "sizeof(BFu8s_L_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu17ll");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu17ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "BFu8s_L_BFu17ll");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "BFu8s_L_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu17ll, BFu8s_L_BFu17ll)
//============================================================================



static void Test_BFu8s_L_BFu1c()
{
  {
    init_simple_test("BFu8s_L_BFu1c");
    static STRUCT_IF_C BFu8s_L_BFu1c lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_L_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu1c");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu1c.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "BFu8s_L_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu1c, BFu8s_L_BFu1c)
//============================================================================



static void Test_BFu8s_L_BFu1i()
{
  {
    init_simple_test("BFu8s_L_BFu1i");
    static STRUCT_IF_C BFu8s_L_BFu1i lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_L_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu1i");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu1i.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "BFu8s_L_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu1i, BFu8s_L_BFu1i)
//============================================================================



static void Test_BFu8s_L_BFu1ll()
{
  {
    init_simple_test("BFu8s_L_BFu1ll");
    static STRUCT_IF_C BFu8s_L_BFu1ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_L_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu1ll");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu1ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "BFu8s_L_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu1ll, BFu8s_L_BFu1ll)
//============================================================================



static void Test_BFu8s_L_BFu1s()
{
  {
    init_simple_test("BFu8s_L_BFu1s");
    static STRUCT_IF_C BFu8s_L_BFu1s lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_L_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu1s");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu1s.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "BFu8s_L_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu1s, BFu8s_L_BFu1s)
//============================================================================



static void Test_BFu8s_L_BFu31i()
{
  {
    init_simple_test("BFu8s_L_BFu31i");
    static STRUCT_IF_C BFu8s_L_BFu31i lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_L_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu31i");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu31i.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "BFu8s_L_BFu31i");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "BFu8s_L_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu31i, BFu8s_L_BFu31i)
//============================================================================



static void Test_BFu8s_L_BFu31ll()
{
  {
    init_simple_test("BFu8s_L_BFu31ll");
    static STRUCT_IF_C BFu8s_L_BFu31ll lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_L_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu31ll");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu31ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "BFu8s_L_BFu31ll");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "BFu8s_L_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu31ll, BFu8s_L_BFu31ll)
//============================================================================



static void Test_BFu8s_L_BFu32i()
{
  {
    init_simple_test("BFu8s_L_BFu32i");
    static STRUCT_IF_C BFu8s_L_BFu32i lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_L_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu32i");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu32i.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "BFu8s_L_BFu32i");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "BFu8s_L_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu32i, BFu8s_L_BFu32i)
//============================================================================



static void Test_BFu8s_L_BFu32ll()
{
  {
    init_simple_test("BFu8s_L_BFu32ll");
    static STRUCT_IF_C BFu8s_L_BFu32ll lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_L_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu32ll");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu32ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "BFu8s_L_BFu32ll");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "BFu8s_L_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu32ll, BFu8s_L_BFu32ll)
//============================================================================



static void Test_BFu8s_L_BFu33()
{
  {
    init_simple_test("BFu8s_L_BFu33");
    static STRUCT_IF_C BFu8s_L_BFu33 lv;
    check2(sizeof(lv), 14, "sizeof(BFu8s_L_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu33");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu33.v2");
    set_bf_and_test(lv, v3, 9, 0, 33, 1, "BFu8s_L_BFu33");
    set_bf_and_test(lv, v3, 9, 0, 33, hide_ull(1LL<<32), "BFu8s_L_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu33, BFu8s_L_BFu33)
//============================================================================



static void Test_BFu8s_L_BFu7c()
{
  {
    init_simple_test("BFu8s_L_BFu7c");
    static STRUCT_IF_C BFu8s_L_BFu7c lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_L_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu7c");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu7c.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "BFu8s_L_BFu7c");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "BFu8s_L_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu7c, BFu8s_L_BFu7c)
//============================================================================



static void Test_BFu8s_L_BFu7i()
{
  {
    init_simple_test("BFu8s_L_BFu7i");
    static STRUCT_IF_C BFu8s_L_BFu7i lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_L_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu7i");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu7i.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "BFu8s_L_BFu7i");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "BFu8s_L_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu7i, BFu8s_L_BFu7i)
//============================================================================



static void Test_BFu8s_L_BFu7ll()
{
  {
    init_simple_test("BFu8s_L_BFu7ll");
    static STRUCT_IF_C BFu8s_L_BFu7ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_L_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu7ll");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu7ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "BFu8s_L_BFu7ll");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "BFu8s_L_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu7ll, BFu8s_L_BFu7ll)
//============================================================================



static void Test_BFu8s_L_BFu7s()
{
  {
    init_simple_test("BFu8s_L_BFu7s");
    static STRUCT_IF_C BFu8s_L_BFu7s lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_L_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu7s");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu7s.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "BFu8s_L_BFu7s");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "BFu8s_L_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu7s, BFu8s_L_BFu7s)
//============================================================================



static void Test_BFu8s_L_BFu8c()
{
  {
    init_simple_test("BFu8s_L_BFu8c");
    static STRUCT_IF_C BFu8s_L_BFu8c lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_L_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu8c");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu8c.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "BFu8s_L_BFu8c");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu8c, BFu8s_L_BFu8c)
//============================================================================



static void Test_BFu8s_L_BFu8i()
{
  {
    init_simple_test("BFu8s_L_BFu8i");
    static STRUCT_IF_C BFu8s_L_BFu8i lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_L_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu8i");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu8i.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "BFu8s_L_BFu8i");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu8i, BFu8s_L_BFu8i)
//============================================================================



static void Test_BFu8s_L_BFu8ll()
{
  {
    init_simple_test("BFu8s_L_BFu8ll");
    static STRUCT_IF_C BFu8s_L_BFu8ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_L_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu8ll");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu8ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "BFu8s_L_BFu8ll");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu8ll, BFu8s_L_BFu8ll)
//============================================================================



static void Test_BFu8s_L_BFu8s()
{
  {
    init_simple_test("BFu8s_L_BFu8s");
    static STRUCT_IF_C BFu8s_L_BFu8s lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_L_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu8s");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu8s.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "BFu8s_L_BFu8s");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu8s, BFu8s_L_BFu8s)
//============================================================================



static void Test_BFu8s_L_BFu9i()
{
  {
    init_simple_test("BFu8s_L_BFu9i");
    static STRUCT_IF_C BFu8s_L_BFu9i lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_L_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu9i");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu9i.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "BFu8s_L_BFu9i");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "BFu8s_L_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu9i, BFu8s_L_BFu9i)
//============================================================================



static void Test_BFu8s_L_BFu9ll()
{
  {
    init_simple_test("BFu8s_L_BFu9ll");
    static STRUCT_IF_C BFu8s_L_BFu9ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_L_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu9ll");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu9ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "BFu8s_L_BFu9ll");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "BFu8s_L_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu9ll, BFu8s_L_BFu9ll)
//============================================================================



static void Test_BFu8s_L_BFu9s()
{
  {
    init_simple_test("BFu8s_L_BFu9s");
    static STRUCT_IF_C BFu8s_L_BFu9s lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_L_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_BFu9s");
    check_field_offset(lv, v2, 1, "BFu8s_L_BFu9s.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "BFu8s_L_BFu9s");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "BFu8s_L_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_BFu9s, BFu8s_L_BFu9s)
//============================================================================



static void Test_BFu8s_L_C()
{
  {
    init_simple_test("BFu8s_L_C");
    static STRUCT_IF_C BFu8s_L_C lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_L_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_C");
    check_field_offset(lv, v2, 1, "BFu8s_L_C.v2");
    check_field_offset(lv, v3, 9, "BFu8s_L_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_C, BFu8s_L_C)
//============================================================================



static void Test_BFu8s_L_D()
{
  {
    init_simple_test("BFu8s_L_D");
    static STRUCT_IF_C BFu8s_L_D lv;
    check2(sizeof(lv), 17, "sizeof(BFu8s_L_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_D");
    check_field_offset(lv, v2, 1, "BFu8s_L_D.v2");
    check_field_offset(lv, v3, 9, "BFu8s_L_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_D, BFu8s_L_D)
//============================================================================



static void Test_BFu8s_L_F()
{
  {
    init_simple_test("BFu8s_L_F");
    static STRUCT_IF_C BFu8s_L_F lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_L_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_F");
    check_field_offset(lv, v2, 1, "BFu8s_L_F.v2");
    check_field_offset(lv, v3, 9, "BFu8s_L_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_F, BFu8s_L_F)
//============================================================================



static void Test_BFu8s_L_I()
{
  {
    init_simple_test("BFu8s_L_I");
    static STRUCT_IF_C BFu8s_L_I lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_L_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_I");
    check_field_offset(lv, v2, 1, "BFu8s_L_I.v2");
    check_field_offset(lv, v3, 9, "BFu8s_L_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_I, BFu8s_L_I)
//============================================================================



static void Test_BFu8s_L_Ip()
{
  {
    init_simple_test("BFu8s_L_Ip");
    static STRUCT_IF_C BFu8s_L_Ip lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(BFu8s_L_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_Ip");
    check_field_offset(lv, v2, 1, "BFu8s_L_Ip.v2");
    check_field_offset(lv, v3, 9, "BFu8s_L_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_Ip, BFu8s_L_Ip)
//============================================================================



static void Test_BFu8s_L_L()
{
  {
    init_simple_test("BFu8s_L_L");
    static STRUCT_IF_C BFu8s_L_L lv;
    check2(sizeof(lv), 17, "sizeof(BFu8s_L_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_L");
    check_field_offset(lv, v2, 1, "BFu8s_L_L.v2");
    check_field_offset(lv, v3, 9, "BFu8s_L_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_L, BFu8s_L_L)
//============================================================================



static void Test_BFu8s_L_S()
{
  {
    init_simple_test("BFu8s_L_S");
    static STRUCT_IF_C BFu8s_L_S lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_L_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_S");
    check_field_offset(lv, v2, 1, "BFu8s_L_S.v2");
    check_field_offset(lv, v3, 9, "BFu8s_L_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_S, BFu8s_L_S)
//============================================================================



static void Test_BFu8s_L_Uc()
{
  {
    init_simple_test("BFu8s_L_Uc");
    static STRUCT_IF_C BFu8s_L_Uc lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_L_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_Uc");
    check_field_offset(lv, v2, 1, "BFu8s_L_Uc.v2");
    check_field_offset(lv, v3, 9, "BFu8s_L_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_Uc, BFu8s_L_Uc)
//============================================================================



static void Test_BFu8s_L_Ui()
{
  {
    init_simple_test("BFu8s_L_Ui");
    static STRUCT_IF_C BFu8s_L_Ui lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_L_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_Ui");
    check_field_offset(lv, v2, 1, "BFu8s_L_Ui.v2");
    check_field_offset(lv, v3, 9, "BFu8s_L_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_Ui, BFu8s_L_Ui)
//============================================================================



static void Test_BFu8s_L_Ul()
{
  {
    init_simple_test("BFu8s_L_Ul");
    static STRUCT_IF_C BFu8s_L_Ul lv;
    check2(sizeof(lv), 17, "sizeof(BFu8s_L_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_Ul");
    check_field_offset(lv, v2, 1, "BFu8s_L_Ul.v2");
    check_field_offset(lv, v3, 9, "BFu8s_L_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_Ul, BFu8s_L_Ul)
//============================================================================



static void Test_BFu8s_L_Us()
{
  {
    init_simple_test("BFu8s_L_Us");
    static STRUCT_IF_C BFu8s_L_Us lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_L_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_Us");
    check_field_offset(lv, v2, 1, "BFu8s_L_Us.v2");
    check_field_offset(lv, v3, 9, "BFu8s_L_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_Us, BFu8s_L_Us)
//============================================================================



static void Test_BFu8s_L_Vp()
{
  {
    init_simple_test("BFu8s_L_Vp");
    static STRUCT_IF_C BFu8s_L_Vp lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(BFu8s_L_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_L_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_L_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_L_Vp");
    check_field_offset(lv, v2, 1, "BFu8s_L_Vp.v2");
    check_field_offset(lv, v3, 9, "BFu8s_L_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_L_Vp, BFu8s_L_Vp)
//============================================================================



static void Test_BFu8s_S()
{
  {
    init_simple_test("BFu8s_S");
    static STRUCT_IF_C BFu8s_S lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S");
    check_field_offset(lv, v2, 1, "BFu8s_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S, BFu8s_S)
//============================================================================



static void Test_BFu8s_S_BFu15i()
{
  {
    init_simple_test("BFu8s_S_BFu15i");
    static STRUCT_IF_C BFu8s_S_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_S_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu15i");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu15i.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu8s_S_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu8s_S_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu15i, BFu8s_S_BFu15i)
//============================================================================



static void Test_BFu8s_S_BFu15ll()
{
  {
    init_simple_test("BFu8s_S_BFu15ll");
    static STRUCT_IF_C BFu8s_S_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_S_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu15ll");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu15ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu8s_S_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu8s_S_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu15ll, BFu8s_S_BFu15ll)
//============================================================================



static void Test_BFu8s_S_BFu15s()
{
  {
    init_simple_test("BFu8s_S_BFu15s");
    static STRUCT_IF_C BFu8s_S_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_S_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu15s");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu15s.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu8s_S_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu8s_S_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu15s, BFu8s_S_BFu15s)
//============================================================================



static void Test_BFu8s_S_BFu16i()
{
  {
    init_simple_test("BFu8s_S_BFu16i");
    static STRUCT_IF_C BFu8s_S_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_S_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu16i");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu16i.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu8s_S_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu8s_S_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu16i, BFu8s_S_BFu16i)
//============================================================================



static void Test_BFu8s_S_BFu16ll()
{
  {
    init_simple_test("BFu8s_S_BFu16ll");
    static STRUCT_IF_C BFu8s_S_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_S_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu16ll");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu16ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu8s_S_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu8s_S_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu16ll, BFu8s_S_BFu16ll)
//============================================================================



static void Test_BFu8s_S_BFu16s()
{
  {
    init_simple_test("BFu8s_S_BFu16s");
    static STRUCT_IF_C BFu8s_S_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_S_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu16s");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu16s.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu8s_S_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu8s_S_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu16s, BFu8s_S_BFu16s)
//============================================================================



static void Test_BFu8s_S_BFu17i()
{
  {
    init_simple_test("BFu8s_S_BFu17i");
    static STRUCT_IF_C BFu8s_S_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_S_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu17i");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu17i.v2");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu8s_S_BFu17i");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu8s_S_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu17i, BFu8s_S_BFu17i)
//============================================================================



static void Test_BFu8s_S_BFu17ll()
{
  {
    init_simple_test("BFu8s_S_BFu17ll");
    static STRUCT_IF_C BFu8s_S_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_S_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu17ll");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu17ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu8s_S_BFu17ll");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu8s_S_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu17ll, BFu8s_S_BFu17ll)
//============================================================================



static void Test_BFu8s_S_BFu1c()
{
  {
    init_simple_test("BFu8s_S_BFu1c");
    static STRUCT_IF_C BFu8s_S_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_S_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu1c");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu1c.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu8s_S_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu1c, BFu8s_S_BFu1c)
//============================================================================



static void Test_BFu8s_S_BFu1i()
{
  {
    init_simple_test("BFu8s_S_BFu1i");
    static STRUCT_IF_C BFu8s_S_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_S_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu1i");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu1i.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu8s_S_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu1i, BFu8s_S_BFu1i)
//============================================================================



static void Test_BFu8s_S_BFu1ll()
{
  {
    init_simple_test("BFu8s_S_BFu1ll");
    static STRUCT_IF_C BFu8s_S_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_S_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu1ll");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu1ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu8s_S_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu1ll, BFu8s_S_BFu1ll)
//============================================================================



static void Test_BFu8s_S_BFu1s()
{
  {
    init_simple_test("BFu8s_S_BFu1s");
    static STRUCT_IF_C BFu8s_S_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_S_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu1s");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu1s.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu8s_S_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu1s, BFu8s_S_BFu1s)
//============================================================================



static void Test_BFu8s_S_BFu31i()
{
  {
    init_simple_test("BFu8s_S_BFu31i");
    static STRUCT_IF_C BFu8s_S_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_S_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu31i");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu31i.v2");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu8s_S_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu8s_S_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu31i, BFu8s_S_BFu31i)
//============================================================================



static void Test_BFu8s_S_BFu31ll()
{
  {
    init_simple_test("BFu8s_S_BFu31ll");
    static STRUCT_IF_C BFu8s_S_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_S_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu31ll");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu31ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu8s_S_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu8s_S_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu31ll, BFu8s_S_BFu31ll)
//============================================================================



static void Test_BFu8s_S_BFu32i()
{
  {
    init_simple_test("BFu8s_S_BFu32i");
    static STRUCT_IF_C BFu8s_S_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_S_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu32i");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu32i.v2");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu8s_S_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu8s_S_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu32i, BFu8s_S_BFu32i)
//============================================================================



static void Test_BFu8s_S_BFu32ll()
{
  {
    init_simple_test("BFu8s_S_BFu32ll");
    static STRUCT_IF_C BFu8s_S_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_S_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu32ll");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu32ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu8s_S_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu8s_S_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu32ll, BFu8s_S_BFu32ll)
//============================================================================



static void Test_BFu8s_S_BFu33()
{
  {
    init_simple_test("BFu8s_S_BFu33");
    static STRUCT_IF_C BFu8s_S_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu8s_S_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu33");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu33.v2");
    set_bf_and_test(lv, v3, 3, 0, 33, 1, "BFu8s_S_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, hide_ull(1LL<<32), "BFu8s_S_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu33, BFu8s_S_BFu33)
//============================================================================



static void Test_BFu8s_S_BFu7c()
{
  {
    init_simple_test("BFu8s_S_BFu7c");
    static STRUCT_IF_C BFu8s_S_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_S_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu7c");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu7c.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu8s_S_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu8s_S_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu7c, BFu8s_S_BFu7c)
//============================================================================



static void Test_BFu8s_S_BFu7i()
{
  {
    init_simple_test("BFu8s_S_BFu7i");
    static STRUCT_IF_C BFu8s_S_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_S_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu7i");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu7i.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu8s_S_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu8s_S_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu7i, BFu8s_S_BFu7i)
//============================================================================



static void Test_BFu8s_S_BFu7ll()
{
  {
    init_simple_test("BFu8s_S_BFu7ll");
    static STRUCT_IF_C BFu8s_S_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_S_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu7ll");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu7ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu8s_S_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu8s_S_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu7ll, BFu8s_S_BFu7ll)
//============================================================================



static void Test_BFu8s_S_BFu7s()
{
  {
    init_simple_test("BFu8s_S_BFu7s");
    static STRUCT_IF_C BFu8s_S_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_S_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu7s");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu7s.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu8s_S_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu8s_S_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu7s, BFu8s_S_BFu7s)
//============================================================================



static void Test_BFu8s_S_BFu8c()
{
  {
    init_simple_test("BFu8s_S_BFu8c");
    static STRUCT_IF_C BFu8s_S_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_S_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu8c");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu8c.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu8s_S_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu8c, BFu8s_S_BFu8c)
//============================================================================



static void Test_BFu8s_S_BFu8i()
{
  {
    init_simple_test("BFu8s_S_BFu8i");
    static STRUCT_IF_C BFu8s_S_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_S_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu8i");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu8i.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu8s_S_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu8i, BFu8s_S_BFu8i)
//============================================================================



static void Test_BFu8s_S_BFu8ll()
{
  {
    init_simple_test("BFu8s_S_BFu8ll");
    static STRUCT_IF_C BFu8s_S_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_S_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu8ll");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu8ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu8s_S_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu8ll, BFu8s_S_BFu8ll)
//============================================================================



static void Test_BFu8s_S_BFu8s()
{
  {
    init_simple_test("BFu8s_S_BFu8s");
    static STRUCT_IF_C BFu8s_S_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_S_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu8s");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu8s.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu8s_S_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu8s, BFu8s_S_BFu8s)
//============================================================================



static void Test_BFu8s_S_BFu9i()
{
  {
    init_simple_test("BFu8s_S_BFu9i");
    static STRUCT_IF_C BFu8s_S_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_S_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu9i");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu9i.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu8s_S_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu8s_S_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu9i, BFu8s_S_BFu9i)
//============================================================================



static void Test_BFu8s_S_BFu9ll()
{
  {
    init_simple_test("BFu8s_S_BFu9ll");
    static STRUCT_IF_C BFu8s_S_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_S_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu9ll");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu9ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu8s_S_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu8s_S_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu9ll, BFu8s_S_BFu9ll)
//============================================================================



static void Test_BFu8s_S_BFu9s()
{
  {
    init_simple_test("BFu8s_S_BFu9s");
    static STRUCT_IF_C BFu8s_S_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_S_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_BFu9s");
    check_field_offset(lv, v2, 1, "BFu8s_S_BFu9s.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu8s_S_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu8s_S_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_BFu9s, BFu8s_S_BFu9s)
//============================================================================



static void Test_BFu8s_S_C()
{
  {
    init_simple_test("BFu8s_S_C");
    static STRUCT_IF_C BFu8s_S_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_S_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_C");
    check_field_offset(lv, v2, 1, "BFu8s_S_C.v2");
    check_field_offset(lv, v3, 3, "BFu8s_S_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_C, BFu8s_S_C)
//============================================================================



static void Test_BFu8s_S_D()
{
  {
    init_simple_test("BFu8s_S_D");
    static STRUCT_IF_C BFu8s_S_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_S_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_D");
    check_field_offset(lv, v2, 1, "BFu8s_S_D.v2");
    check_field_offset(lv, v3, 3, "BFu8s_S_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_D, BFu8s_S_D)
//============================================================================



static void Test_BFu8s_S_F()
{
  {
    init_simple_test("BFu8s_S_F");
    static STRUCT_IF_C BFu8s_S_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_S_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_F");
    check_field_offset(lv, v2, 1, "BFu8s_S_F.v2");
    check_field_offset(lv, v3, 3, "BFu8s_S_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_F, BFu8s_S_F)
//============================================================================



static void Test_BFu8s_S_I()
{
  {
    init_simple_test("BFu8s_S_I");
    static STRUCT_IF_C BFu8s_S_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_S_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_I");
    check_field_offset(lv, v2, 1, "BFu8s_S_I.v2");
    check_field_offset(lv, v3, 3, "BFu8s_S_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_I, BFu8s_S_I)
//============================================================================



static void Test_BFu8s_S_Ip()
{
  {
    init_simple_test("BFu8s_S_Ip");
    static STRUCT_IF_C BFu8s_S_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_S_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_Ip");
    check_field_offset(lv, v2, 1, "BFu8s_S_Ip.v2");
    check_field_offset(lv, v3, 3, "BFu8s_S_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_Ip, BFu8s_S_Ip)
//============================================================================



static void Test_BFu8s_S_L()
{
  {
    init_simple_test("BFu8s_S_L");
    static STRUCT_IF_C BFu8s_S_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_S_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_L");
    check_field_offset(lv, v2, 1, "BFu8s_S_L.v2");
    check_field_offset(lv, v3, 3, "BFu8s_S_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_L, BFu8s_S_L)
//============================================================================



static void Test_BFu8s_S_S()
{
  {
    init_simple_test("BFu8s_S_S");
    static STRUCT_IF_C BFu8s_S_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_S_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_S");
    check_field_offset(lv, v2, 1, "BFu8s_S_S.v2");
    check_field_offset(lv, v3, 3, "BFu8s_S_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_S, BFu8s_S_S)
//============================================================================



static void Test_BFu8s_S_Uc()
{
  {
    init_simple_test("BFu8s_S_Uc");
    static STRUCT_IF_C BFu8s_S_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_S_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_Uc");
    check_field_offset(lv, v2, 1, "BFu8s_S_Uc.v2");
    check_field_offset(lv, v3, 3, "BFu8s_S_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_Uc, BFu8s_S_Uc)
//============================================================================



static void Test_BFu8s_S_Ui()
{
  {
    init_simple_test("BFu8s_S_Ui");
    static STRUCT_IF_C BFu8s_S_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_S_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_Ui");
    check_field_offset(lv, v2, 1, "BFu8s_S_Ui.v2");
    check_field_offset(lv, v3, 3, "BFu8s_S_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_Ui, BFu8s_S_Ui)
//============================================================================



static void Test_BFu8s_S_Ul()
{
  {
    init_simple_test("BFu8s_S_Ul");
    static STRUCT_IF_C BFu8s_S_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_S_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_Ul");
    check_field_offset(lv, v2, 1, "BFu8s_S_Ul.v2");
    check_field_offset(lv, v3, 3, "BFu8s_S_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_Ul, BFu8s_S_Ul)
//============================================================================



static void Test_BFu8s_S_Us()
{
  {
    init_simple_test("BFu8s_S_Us");
    static STRUCT_IF_C BFu8s_S_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_S_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_Us");
    check_field_offset(lv, v2, 1, "BFu8s_S_Us.v2");
    check_field_offset(lv, v3, 3, "BFu8s_S_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_Us, BFu8s_S_Us)
//============================================================================



static void Test_BFu8s_S_Vp()
{
  {
    init_simple_test("BFu8s_S_Vp");
    static STRUCT_IF_C BFu8s_S_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_S_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_S_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_S_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_S_Vp");
    check_field_offset(lv, v2, 1, "BFu8s_S_Vp.v2");
    check_field_offset(lv, v3, 3, "BFu8s_S_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_S_Vp, BFu8s_S_Vp)
//============================================================================



static void Test_BFu8s_Uc()
{
  {
    init_simple_test("BFu8s_Uc");
    static STRUCT_IF_C BFu8s_Uc lv;
    check2(sizeof(lv), 2, "sizeof(BFu8s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc");
    check_field_offset(lv, v2, 1, "BFu8s_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc, BFu8s_Uc)
//============================================================================



static void Test_BFu8s_Uc_BFu15i()
{
  {
    init_simple_test("BFu8s_Uc_BFu15i");
    static STRUCT_IF_C BFu8s_Uc_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Uc_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu15i");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu15i.v2");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu8s_Uc_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu8s_Uc_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu15i, BFu8s_Uc_BFu15i)
//============================================================================



static void Test_BFu8s_Uc_BFu15ll()
{
  {
    init_simple_test("BFu8s_Uc_BFu15ll");
    static STRUCT_IF_C BFu8s_Uc_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Uc_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu15ll");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu15ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu8s_Uc_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu8s_Uc_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu15ll, BFu8s_Uc_BFu15ll)
//============================================================================



static void Test_BFu8s_Uc_BFu15s()
{
  {
    init_simple_test("BFu8s_Uc_BFu15s");
    static STRUCT_IF_C BFu8s_Uc_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Uc_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu15s");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu15s.v2");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu8s_Uc_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu8s_Uc_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu15s, BFu8s_Uc_BFu15s)
//============================================================================



static void Test_BFu8s_Uc_BFu16i()
{
  {
    init_simple_test("BFu8s_Uc_BFu16i");
    static STRUCT_IF_C BFu8s_Uc_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Uc_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu16i");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu16i.v2");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu8s_Uc_BFu16i");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu8s_Uc_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu16i, BFu8s_Uc_BFu16i)
//============================================================================



static void Test_BFu8s_Uc_BFu16ll()
{
  {
    init_simple_test("BFu8s_Uc_BFu16ll");
    static STRUCT_IF_C BFu8s_Uc_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Uc_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu16ll");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu16ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu8s_Uc_BFu16ll");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu8s_Uc_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu16ll, BFu8s_Uc_BFu16ll)
//============================================================================



static void Test_BFu8s_Uc_BFu16s()
{
  {
    init_simple_test("BFu8s_Uc_BFu16s");
    static STRUCT_IF_C BFu8s_Uc_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Uc_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu16s");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu16s.v2");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu8s_Uc_BFu16s");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu8s_Uc_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu16s, BFu8s_Uc_BFu16s)
//============================================================================



static void Test_BFu8s_Uc_BFu17i()
{
  {
    init_simple_test("BFu8s_Uc_BFu17i");
    static STRUCT_IF_C BFu8s_Uc_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_Uc_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu17i");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu17i.v2");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "BFu8s_Uc_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "BFu8s_Uc_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu17i, BFu8s_Uc_BFu17i)
//============================================================================



static void Test_BFu8s_Uc_BFu17ll()
{
  {
    init_simple_test("BFu8s_Uc_BFu17ll");
    static STRUCT_IF_C BFu8s_Uc_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_Uc_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu17ll");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu17ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "BFu8s_Uc_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "BFu8s_Uc_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu17ll, BFu8s_Uc_BFu17ll)
//============================================================================



static void Test_BFu8s_Uc_BFu1c()
{
  {
    init_simple_test("BFu8s_Uc_BFu1c");
    static STRUCT_IF_C BFu8s_Uc_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_Uc_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu1c");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu1c.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu8s_Uc_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu1c, BFu8s_Uc_BFu1c)
//============================================================================



static void Test_BFu8s_Uc_BFu1i()
{
  {
    init_simple_test("BFu8s_Uc_BFu1i");
    static STRUCT_IF_C BFu8s_Uc_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_Uc_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu1i");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu1i.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu8s_Uc_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu1i, BFu8s_Uc_BFu1i)
//============================================================================



static void Test_BFu8s_Uc_BFu1ll()
{
  {
    init_simple_test("BFu8s_Uc_BFu1ll");
    static STRUCT_IF_C BFu8s_Uc_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_Uc_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu1ll");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu1ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu8s_Uc_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu1ll, BFu8s_Uc_BFu1ll)
//============================================================================



static void Test_BFu8s_Uc_BFu1s()
{
  {
    init_simple_test("BFu8s_Uc_BFu1s");
    static STRUCT_IF_C BFu8s_Uc_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_Uc_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu1s");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu1s.v2");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu8s_Uc_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu1s, BFu8s_Uc_BFu1s)
//============================================================================



static void Test_BFu8s_Uc_BFu31i()
{
  {
    init_simple_test("BFu8s_Uc_BFu31i");
    static STRUCT_IF_C BFu8s_Uc_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Uc_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu31i");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu31i.v2");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "BFu8s_Uc_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "BFu8s_Uc_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu31i, BFu8s_Uc_BFu31i)
//============================================================================



static void Test_BFu8s_Uc_BFu31ll()
{
  {
    init_simple_test("BFu8s_Uc_BFu31ll");
    static STRUCT_IF_C BFu8s_Uc_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Uc_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu31ll");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu31ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "BFu8s_Uc_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "BFu8s_Uc_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu31ll, BFu8s_Uc_BFu31ll)
//============================================================================



static void Test_BFu8s_Uc_BFu32i()
{
  {
    init_simple_test("BFu8s_Uc_BFu32i");
    static STRUCT_IF_C BFu8s_Uc_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Uc_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu32i");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu32i.v2");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "BFu8s_Uc_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "BFu8s_Uc_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu32i, BFu8s_Uc_BFu32i)
//============================================================================



static void Test_BFu8s_Uc_BFu32ll()
{
  {
    init_simple_test("BFu8s_Uc_BFu32ll");
    static STRUCT_IF_C BFu8s_Uc_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Uc_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu32ll");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu32ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "BFu8s_Uc_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "BFu8s_Uc_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu32ll, BFu8s_Uc_BFu32ll)
//============================================================================



static void Test_BFu8s_Uc_BFu33()
{
  {
    init_simple_test("BFu8s_Uc_BFu33");
    static STRUCT_IF_C BFu8s_Uc_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Uc_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu33");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu33.v2");
    set_bf_and_test(lv, v3, 2, 0, 33, 1, "BFu8s_Uc_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, hide_ull(1LL<<32), "BFu8s_Uc_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu33, BFu8s_Uc_BFu33)
//============================================================================



static void Test_BFu8s_Uc_BFu7c()
{
  {
    init_simple_test("BFu8s_Uc_BFu7c");
    static STRUCT_IF_C BFu8s_Uc_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_Uc_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu7c");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu7c.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu8s_Uc_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu8s_Uc_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu7c, BFu8s_Uc_BFu7c)
//============================================================================



static void Test_BFu8s_Uc_BFu7i()
{
  {
    init_simple_test("BFu8s_Uc_BFu7i");
    static STRUCT_IF_C BFu8s_Uc_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_Uc_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu7i");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu7i.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu8s_Uc_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu8s_Uc_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu7i, BFu8s_Uc_BFu7i)
//============================================================================



static void Test_BFu8s_Uc_BFu7ll()
{
  {
    init_simple_test("BFu8s_Uc_BFu7ll");
    static STRUCT_IF_C BFu8s_Uc_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_Uc_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu7ll");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu7ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu8s_Uc_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu8s_Uc_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu7ll, BFu8s_Uc_BFu7ll)
//============================================================================



static void Test_BFu8s_Uc_BFu7s()
{
  {
    init_simple_test("BFu8s_Uc_BFu7s");
    static STRUCT_IF_C BFu8s_Uc_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_Uc_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu7s");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu7s.v2");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu8s_Uc_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu8s_Uc_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu7s, BFu8s_Uc_BFu7s)
//============================================================================



static void Test_BFu8s_Uc_BFu8c()
{
  {
    init_simple_test("BFu8s_Uc_BFu8c");
    static STRUCT_IF_C BFu8s_Uc_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_Uc_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu8c");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu8c.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_Uc_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu8c, BFu8s_Uc_BFu8c)
//============================================================================



static void Test_BFu8s_Uc_BFu8i()
{
  {
    init_simple_test("BFu8s_Uc_BFu8i");
    static STRUCT_IF_C BFu8s_Uc_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_Uc_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu8i");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu8i.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_Uc_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu8i, BFu8s_Uc_BFu8i)
//============================================================================



static void Test_BFu8s_Uc_BFu8ll()
{
  {
    init_simple_test("BFu8s_Uc_BFu8ll");
    static STRUCT_IF_C BFu8s_Uc_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_Uc_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu8ll");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu8ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_Uc_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu8ll, BFu8s_Uc_BFu8ll)
//============================================================================



static void Test_BFu8s_Uc_BFu8s()
{
  {
    init_simple_test("BFu8s_Uc_BFu8s");
    static STRUCT_IF_C BFu8s_Uc_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_Uc_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu8s");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu8s.v2");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu8s_Uc_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu8s, BFu8s_Uc_BFu8s)
//============================================================================



static void Test_BFu8s_Uc_BFu9i()
{
  {
    init_simple_test("BFu8s_Uc_BFu9i");
    static STRUCT_IF_C BFu8s_Uc_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Uc_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu9i");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu9i.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu8s_Uc_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu8s_Uc_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu9i, BFu8s_Uc_BFu9i)
//============================================================================



static void Test_BFu8s_Uc_BFu9ll()
{
  {
    init_simple_test("BFu8s_Uc_BFu9ll");
    static STRUCT_IF_C BFu8s_Uc_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Uc_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu9ll");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu9ll.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu8s_Uc_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu8s_Uc_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu9ll, BFu8s_Uc_BFu9ll)
//============================================================================



static void Test_BFu8s_Uc_BFu9s()
{
  {
    init_simple_test("BFu8s_Uc_BFu9s");
    static STRUCT_IF_C BFu8s_Uc_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Uc_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_BFu9s");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_BFu9s.v2");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu8s_Uc_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu8s_Uc_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_BFu9s, BFu8s_Uc_BFu9s)
//============================================================================



static void Test_BFu8s_Uc_C()
{
  {
    init_simple_test("BFu8s_Uc_C");
    static STRUCT_IF_C BFu8s_Uc_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_Uc_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_C");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_C.v2");
    check_field_offset(lv, v3, 2, "BFu8s_Uc_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_C, BFu8s_Uc_C)
//============================================================================



static void Test_BFu8s_Uc_D()
{
  {
    init_simple_test("BFu8s_Uc_D");
    static STRUCT_IF_C BFu8s_Uc_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Uc_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_D");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_D.v2");
    check_field_offset(lv, v3, 2, "BFu8s_Uc_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_D, BFu8s_Uc_D)
//============================================================================



static void Test_BFu8s_Uc_F()
{
  {
    init_simple_test("BFu8s_Uc_F");
    static STRUCT_IF_C BFu8s_Uc_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Uc_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_F");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_F.v2");
    check_field_offset(lv, v3, 2, "BFu8s_Uc_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_F, BFu8s_Uc_F)
//============================================================================



static void Test_BFu8s_Uc_I()
{
  {
    init_simple_test("BFu8s_Uc_I");
    static STRUCT_IF_C BFu8s_Uc_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Uc_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_I");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_I.v2");
    check_field_offset(lv, v3, 2, "BFu8s_Uc_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_I, BFu8s_Uc_I)
//============================================================================



static void Test_BFu8s_Uc_Ip()
{
  {
    init_simple_test("BFu8s_Uc_Ip");
    static STRUCT_IF_C BFu8s_Uc_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Uc_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_Ip");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_Ip.v2");
    check_field_offset(lv, v3, 2, "BFu8s_Uc_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_Ip, BFu8s_Uc_Ip)
//============================================================================



static void Test_BFu8s_Uc_L()
{
  {
    init_simple_test("BFu8s_Uc_L");
    static STRUCT_IF_C BFu8s_Uc_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Uc_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_L");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_L.v2");
    check_field_offset(lv, v3, 2, "BFu8s_Uc_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_L, BFu8s_Uc_L)
//============================================================================



static void Test_BFu8s_Uc_S()
{
  {
    init_simple_test("BFu8s_Uc_S");
    static STRUCT_IF_C BFu8s_Uc_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Uc_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_S");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_S.v2");
    check_field_offset(lv, v3, 2, "BFu8s_Uc_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_S, BFu8s_Uc_S)
//============================================================================



static void Test_BFu8s_Uc_Uc()
{
  {
    init_simple_test("BFu8s_Uc_Uc");
    static STRUCT_IF_C BFu8s_Uc_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_Uc_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_Uc");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_Uc.v2");
    check_field_offset(lv, v3, 2, "BFu8s_Uc_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_Uc, BFu8s_Uc_Uc)
//============================================================================



static void Test_BFu8s_Uc_Ui()
{
  {
    init_simple_test("BFu8s_Uc_Ui");
    static STRUCT_IF_C BFu8s_Uc_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Uc_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_Ui");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_Ui.v2");
    check_field_offset(lv, v3, 2, "BFu8s_Uc_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_Ui, BFu8s_Uc_Ui)
//============================================================================



static void Test_BFu8s_Uc_Ul()
{
  {
    init_simple_test("BFu8s_Uc_Ul");
    static STRUCT_IF_C BFu8s_Uc_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Uc_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_Ul");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_Ul.v2");
    check_field_offset(lv, v3, 2, "BFu8s_Uc_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_Ul, BFu8s_Uc_Ul)
//============================================================================



static void Test_BFu8s_Uc_Us()
{
  {
    init_simple_test("BFu8s_Uc_Us");
    static STRUCT_IF_C BFu8s_Uc_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Uc_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_Us");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_Us.v2");
    check_field_offset(lv, v3, 2, "BFu8s_Uc_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_Us, BFu8s_Uc_Us)
//============================================================================



static void Test_BFu8s_Uc_Vp()
{
  {
    init_simple_test("BFu8s_Uc_Vp");
    static STRUCT_IF_C BFu8s_Uc_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Uc_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Uc_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Uc_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Uc_Vp");
    check_field_offset(lv, v2, 1, "BFu8s_Uc_Vp.v2");
    check_field_offset(lv, v3, 2, "BFu8s_Uc_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Uc_Vp, BFu8s_Uc_Vp)
//============================================================================



static void Test_BFu8s_Ui()
{
  {
    init_simple_test("BFu8s_Ui");
    static STRUCT_IF_C BFu8s_Ui lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui");
    check_field_offset(lv, v2, 1, "BFu8s_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui, BFu8s_Ui)
//============================================================================



static void Test_BFu8s_Ui_BFu15i()
{
  {
    init_simple_test("BFu8s_Ui_BFu15i");
    static STRUCT_IF_C BFu8s_Ui_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Ui_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu15i");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu15i.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "BFu8s_Ui_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "BFu8s_Ui_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu15i, BFu8s_Ui_BFu15i)
//============================================================================



static void Test_BFu8s_Ui_BFu15ll()
{
  {
    init_simple_test("BFu8s_Ui_BFu15ll");
    static STRUCT_IF_C BFu8s_Ui_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Ui_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu15ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu15ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "BFu8s_Ui_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "BFu8s_Ui_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu15ll, BFu8s_Ui_BFu15ll)
//============================================================================



static void Test_BFu8s_Ui_BFu15s()
{
  {
    init_simple_test("BFu8s_Ui_BFu15s");
    static STRUCT_IF_C BFu8s_Ui_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Ui_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu15s");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu15s.v2");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "BFu8s_Ui_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "BFu8s_Ui_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu15s, BFu8s_Ui_BFu15s)
//============================================================================



static void Test_BFu8s_Ui_BFu16i()
{
  {
    init_simple_test("BFu8s_Ui_BFu16i");
    static STRUCT_IF_C BFu8s_Ui_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Ui_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu16i");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu16i.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "BFu8s_Ui_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "BFu8s_Ui_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu16i, BFu8s_Ui_BFu16i)
//============================================================================



static void Test_BFu8s_Ui_BFu16ll()
{
  {
    init_simple_test("BFu8s_Ui_BFu16ll");
    static STRUCT_IF_C BFu8s_Ui_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Ui_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu16ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu16ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "BFu8s_Ui_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "BFu8s_Ui_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu16ll, BFu8s_Ui_BFu16ll)
//============================================================================



static void Test_BFu8s_Ui_BFu16s()
{
  {
    init_simple_test("BFu8s_Ui_BFu16s");
    static STRUCT_IF_C BFu8s_Ui_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Ui_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu16s");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu16s.v2");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "BFu8s_Ui_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "BFu8s_Ui_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu16s, BFu8s_Ui_BFu16s)
//============================================================================



static void Test_BFu8s_Ui_BFu17i()
{
  {
    init_simple_test("BFu8s_Ui_BFu17i");
    static STRUCT_IF_C BFu8s_Ui_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(BFu8s_Ui_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu17i");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu17i.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "BFu8s_Ui_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "BFu8s_Ui_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu17i, BFu8s_Ui_BFu17i)
//============================================================================



static void Test_BFu8s_Ui_BFu17ll()
{
  {
    init_simple_test("BFu8s_Ui_BFu17ll");
    static STRUCT_IF_C BFu8s_Ui_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu8s_Ui_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu17ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu17ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "BFu8s_Ui_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "BFu8s_Ui_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu17ll, BFu8s_Ui_BFu17ll)
//============================================================================



static void Test_BFu8s_Ui_BFu1c()
{
  {
    init_simple_test("BFu8s_Ui_BFu1c");
    static STRUCT_IF_C BFu8s_Ui_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Ui_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu1c");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu1c.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu8s_Ui_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu1c, BFu8s_Ui_BFu1c)
//============================================================================



static void Test_BFu8s_Ui_BFu1i()
{
  {
    init_simple_test("BFu8s_Ui_BFu1i");
    static STRUCT_IF_C BFu8s_Ui_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Ui_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu1i");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu1i.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu8s_Ui_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu1i, BFu8s_Ui_BFu1i)
//============================================================================



static void Test_BFu8s_Ui_BFu1ll()
{
  {
    init_simple_test("BFu8s_Ui_BFu1ll");
    static STRUCT_IF_C BFu8s_Ui_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Ui_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu1ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu1ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu8s_Ui_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu1ll, BFu8s_Ui_BFu1ll)
//============================================================================



static void Test_BFu8s_Ui_BFu1s()
{
  {
    init_simple_test("BFu8s_Ui_BFu1s");
    static STRUCT_IF_C BFu8s_Ui_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Ui_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu1s");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu1s.v2");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu8s_Ui_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu1s, BFu8s_Ui_BFu1s)
//============================================================================



static void Test_BFu8s_Ui_BFu31i()
{
  {
    init_simple_test("BFu8s_Ui_BFu31i");
    static STRUCT_IF_C BFu8s_Ui_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_Ui_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu31i");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu31i.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "BFu8s_Ui_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "BFu8s_Ui_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu31i, BFu8s_Ui_BFu31i)
//============================================================================



static void Test_BFu8s_Ui_BFu31ll()
{
  {
    init_simple_test("BFu8s_Ui_BFu31ll");
    static STRUCT_IF_C BFu8s_Ui_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_Ui_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu31ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu31ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "BFu8s_Ui_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "BFu8s_Ui_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu31ll, BFu8s_Ui_BFu31ll)
//============================================================================



static void Test_BFu8s_Ui_BFu32i()
{
  {
    init_simple_test("BFu8s_Ui_BFu32i");
    static STRUCT_IF_C BFu8s_Ui_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_Ui_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu32i");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu32i.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "BFu8s_Ui_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "BFu8s_Ui_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu32i, BFu8s_Ui_BFu32i)
//============================================================================



static void Test_BFu8s_Ui_BFu32ll()
{
  {
    init_simple_test("BFu8s_Ui_BFu32ll");
    static STRUCT_IF_C BFu8s_Ui_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_Ui_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu32ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu32ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "BFu8s_Ui_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "BFu8s_Ui_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu32ll, BFu8s_Ui_BFu32ll)
//============================================================================



static void Test_BFu8s_Ui_BFu33()
{
  {
    init_simple_test("BFu8s_Ui_BFu33");
    static STRUCT_IF_C BFu8s_Ui_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Ui_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu33");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu33.v2");
    set_bf_and_test(lv, v3, 5, 0, 33, 1, "BFu8s_Ui_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, hide_ull(1LL<<32), "BFu8s_Ui_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu33, BFu8s_Ui_BFu33)
//============================================================================



static void Test_BFu8s_Ui_BFu7c()
{
  {
    init_simple_test("BFu8s_Ui_BFu7c");
    static STRUCT_IF_C BFu8s_Ui_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Ui_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu7c");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu7c.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu8s_Ui_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu8s_Ui_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu7c, BFu8s_Ui_BFu7c)
//============================================================================



static void Test_BFu8s_Ui_BFu7i()
{
  {
    init_simple_test("BFu8s_Ui_BFu7i");
    static STRUCT_IF_C BFu8s_Ui_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Ui_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu7i");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu7i.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu8s_Ui_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu8s_Ui_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu7i, BFu8s_Ui_BFu7i)
//============================================================================



static void Test_BFu8s_Ui_BFu7ll()
{
  {
    init_simple_test("BFu8s_Ui_BFu7ll");
    static STRUCT_IF_C BFu8s_Ui_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Ui_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu7ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu7ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu8s_Ui_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu8s_Ui_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu7ll, BFu8s_Ui_BFu7ll)
//============================================================================



static void Test_BFu8s_Ui_BFu7s()
{
  {
    init_simple_test("BFu8s_Ui_BFu7s");
    static STRUCT_IF_C BFu8s_Ui_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Ui_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu7s");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu7s.v2");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu8s_Ui_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu8s_Ui_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu7s, BFu8s_Ui_BFu7s)
//============================================================================



static void Test_BFu8s_Ui_BFu8c()
{
  {
    init_simple_test("BFu8s_Ui_BFu8c");
    static STRUCT_IF_C BFu8s_Ui_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Ui_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu8c");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu8c.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu8s_Ui_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu8c, BFu8s_Ui_BFu8c)
//============================================================================



static void Test_BFu8s_Ui_BFu8i()
{
  {
    init_simple_test("BFu8s_Ui_BFu8i");
    static STRUCT_IF_C BFu8s_Ui_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Ui_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu8i");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu8i.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu8s_Ui_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu8i, BFu8s_Ui_BFu8i)
//============================================================================



static void Test_BFu8s_Ui_BFu8ll()
{
  {
    init_simple_test("BFu8s_Ui_BFu8ll");
    static STRUCT_IF_C BFu8s_Ui_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Ui_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu8ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu8ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu8s_Ui_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu8ll, BFu8s_Ui_BFu8ll)
//============================================================================



static void Test_BFu8s_Ui_BFu8s()
{
  {
    init_simple_test("BFu8s_Ui_BFu8s");
    static STRUCT_IF_C BFu8s_Ui_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Ui_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu8s");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu8s.v2");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu8s_Ui_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu8s, BFu8s_Ui_BFu8s)
//============================================================================



static void Test_BFu8s_Ui_BFu9i()
{
  {
    init_simple_test("BFu8s_Ui_BFu9i");
    static STRUCT_IF_C BFu8s_Ui_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Ui_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu9i");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu9i.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "BFu8s_Ui_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "BFu8s_Ui_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu9i, BFu8s_Ui_BFu9i)
//============================================================================



static void Test_BFu8s_Ui_BFu9ll()
{
  {
    init_simple_test("BFu8s_Ui_BFu9ll");
    static STRUCT_IF_C BFu8s_Ui_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Ui_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu9ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu9ll.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "BFu8s_Ui_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "BFu8s_Ui_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu9ll, BFu8s_Ui_BFu9ll)
//============================================================================



static void Test_BFu8s_Ui_BFu9s()
{
  {
    init_simple_test("BFu8s_Ui_BFu9s");
    static STRUCT_IF_C BFu8s_Ui_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Ui_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_BFu9s");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_BFu9s.v2");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "BFu8s_Ui_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "BFu8s_Ui_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_BFu9s, BFu8s_Ui_BFu9s)
//============================================================================



static void Test_BFu8s_Ui_C()
{
  {
    init_simple_test("BFu8s_Ui_C");
    static STRUCT_IF_C BFu8s_Ui_C lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Ui_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_C");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_C.v2");
    check_field_offset(lv, v3, 5, "BFu8s_Ui_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_C, BFu8s_Ui_C)
//============================================================================



static void Test_BFu8s_Ui_D()
{
  {
    init_simple_test("BFu8s_Ui_D");
    static STRUCT_IF_C BFu8s_Ui_D lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_Ui_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_D");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_D.v2");
    check_field_offset(lv, v3, 5, "BFu8s_Ui_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_D, BFu8s_Ui_D)
//============================================================================



static void Test_BFu8s_Ui_F()
{
  {
    init_simple_test("BFu8s_Ui_F");
    static STRUCT_IF_C BFu8s_Ui_F lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_Ui_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_F");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_F.v2");
    check_field_offset(lv, v3, 5, "BFu8s_Ui_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_F, BFu8s_Ui_F)
//============================================================================



static void Test_BFu8s_Ui_I()
{
  {
    init_simple_test("BFu8s_Ui_I");
    static STRUCT_IF_C BFu8s_Ui_I lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_Ui_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_I");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_I.v2");
    check_field_offset(lv, v3, 5, "BFu8s_Ui_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_I, BFu8s_Ui_I)
//============================================================================



static void Test_BFu8s_Ui_Ip()
{
  {
    init_simple_test("BFu8s_Ui_Ip");
    static STRUCT_IF_C BFu8s_Ui_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_Ui_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_Ip");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_Ip.v2");
    check_field_offset(lv, v3, 5, "BFu8s_Ui_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_Ip, BFu8s_Ui_Ip)
//============================================================================



static void Test_BFu8s_Ui_L()
{
  {
    init_simple_test("BFu8s_Ui_L");
    static STRUCT_IF_C BFu8s_Ui_L lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_Ui_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_L");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_L.v2");
    check_field_offset(lv, v3, 5, "BFu8s_Ui_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_L, BFu8s_Ui_L)
//============================================================================



static void Test_BFu8s_Ui_S()
{
  {
    init_simple_test("BFu8s_Ui_S");
    static STRUCT_IF_C BFu8s_Ui_S lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Ui_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_S");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_S.v2");
    check_field_offset(lv, v3, 5, "BFu8s_Ui_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_S, BFu8s_Ui_S)
//============================================================================



static void Test_BFu8s_Ui_Uc()
{
  {
    init_simple_test("BFu8s_Ui_Uc");
    static STRUCT_IF_C BFu8s_Ui_Uc lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Ui_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_Uc");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_Uc.v2");
    check_field_offset(lv, v3, 5, "BFu8s_Ui_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_Uc, BFu8s_Ui_Uc)
//============================================================================



static void Test_BFu8s_Ui_Ui()
{
  {
    init_simple_test("BFu8s_Ui_Ui");
    static STRUCT_IF_C BFu8s_Ui_Ui lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_Ui_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_Ui");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_Ui.v2");
    check_field_offset(lv, v3, 5, "BFu8s_Ui_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_Ui, BFu8s_Ui_Ui)
//============================================================================



static void Test_BFu8s_Ui_Ul()
{
  {
    init_simple_test("BFu8s_Ui_Ul");
    static STRUCT_IF_C BFu8s_Ui_Ul lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_Ui_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_Ul");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_Ul.v2");
    check_field_offset(lv, v3, 5, "BFu8s_Ui_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_Ul, BFu8s_Ui_Ul)
//============================================================================



static void Test_BFu8s_Ui_Us()
{
  {
    init_simple_test("BFu8s_Ui_Us");
    static STRUCT_IF_C BFu8s_Ui_Us lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Ui_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_Us");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_Us.v2");
    check_field_offset(lv, v3, 5, "BFu8s_Ui_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_Us, BFu8s_Ui_Us)
//============================================================================



static void Test_BFu8s_Ui_Vp()
{
  {
    init_simple_test("BFu8s_Ui_Vp");
    static STRUCT_IF_C BFu8s_Ui_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_Ui_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ui_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ui_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ui_Vp");
    check_field_offset(lv, v2, 1, "BFu8s_Ui_Vp.v2");
    check_field_offset(lv, v3, 5, "BFu8s_Ui_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ui_Vp, BFu8s_Ui_Vp)
//============================================================================



static void Test_BFu8s_Ul()
{
  {
    init_simple_test("BFu8s_Ul");
    static STRUCT_IF_C BFu8s_Ul lv;
    check2(sizeof(lv), 9, "sizeof(BFu8s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul");
    check_field_offset(lv, v2, 1, "BFu8s_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul, BFu8s_Ul)
//============================================================================



static void Test_BFu8s_Ul_BFu15i()
{
  {
    init_simple_test("BFu8s_Ul_BFu15i");
    static STRUCT_IF_C BFu8s_Ul_BFu15i lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_Ul_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu15i");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu15i.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "BFu8s_Ul_BFu15i");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "BFu8s_Ul_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu15i, BFu8s_Ul_BFu15i)
//============================================================================



static void Test_BFu8s_Ul_BFu15ll()
{
  {
    init_simple_test("BFu8s_Ul_BFu15ll");
    static STRUCT_IF_C BFu8s_Ul_BFu15ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_Ul_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu15ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu15ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "BFu8s_Ul_BFu15ll");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "BFu8s_Ul_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu15ll, BFu8s_Ul_BFu15ll)
//============================================================================



static void Test_BFu8s_Ul_BFu15s()
{
  {
    init_simple_test("BFu8s_Ul_BFu15s");
    static STRUCT_IF_C BFu8s_Ul_BFu15s lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_Ul_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu15s");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu15s.v2");
    set_bf_and_test(lv, v3, 9, 0, 15, 1, "BFu8s_Ul_BFu15s");
    set_bf_and_test(lv, v3, 9, 0, 15, hide_ull(1LL<<14), "BFu8s_Ul_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu15s, BFu8s_Ul_BFu15s)
//============================================================================



static void Test_BFu8s_Ul_BFu16i()
{
  {
    init_simple_test("BFu8s_Ul_BFu16i");
    static STRUCT_IF_C BFu8s_Ul_BFu16i lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_Ul_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu16i");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu16i.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "BFu8s_Ul_BFu16i");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "BFu8s_Ul_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu16i, BFu8s_Ul_BFu16i)
//============================================================================



static void Test_BFu8s_Ul_BFu16ll()
{
  {
    init_simple_test("BFu8s_Ul_BFu16ll");
    static STRUCT_IF_C BFu8s_Ul_BFu16ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_Ul_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu16ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu16ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "BFu8s_Ul_BFu16ll");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "BFu8s_Ul_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu16ll, BFu8s_Ul_BFu16ll)
//============================================================================



static void Test_BFu8s_Ul_BFu16s()
{
  {
    init_simple_test("BFu8s_Ul_BFu16s");
    static STRUCT_IF_C BFu8s_Ul_BFu16s lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_Ul_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu16s");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu16s.v2");
    set_bf_and_test(lv, v3, 9, 0, 16, 1, "BFu8s_Ul_BFu16s");
    set_bf_and_test(lv, v3, 9, 0, 16, hide_ull(1LL<<15), "BFu8s_Ul_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu16s, BFu8s_Ul_BFu16s)
//============================================================================



static void Test_BFu8s_Ul_BFu17i()
{
  {
    init_simple_test("BFu8s_Ul_BFu17i");
    static STRUCT_IF_C BFu8s_Ul_BFu17i lv;
    check2(sizeof(lv), 12, "sizeof(BFu8s_Ul_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu17i");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu17i.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "BFu8s_Ul_BFu17i");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "BFu8s_Ul_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu17i, BFu8s_Ul_BFu17i)
//============================================================================



static void Test_BFu8s_Ul_BFu17ll()
{
  {
    init_simple_test("BFu8s_Ul_BFu17ll");
    static STRUCT_IF_C BFu8s_Ul_BFu17ll lv;
    check2(sizeof(lv), 12, "sizeof(BFu8s_Ul_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu17ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu17ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 17, 1, "BFu8s_Ul_BFu17ll");
    set_bf_and_test(lv, v3, 9, 0, 17, hide_ull(1LL<<16), "BFu8s_Ul_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu17ll, BFu8s_Ul_BFu17ll)
//============================================================================



static void Test_BFu8s_Ul_BFu1c()
{
  {
    init_simple_test("BFu8s_Ul_BFu1c");
    static STRUCT_IF_C BFu8s_Ul_BFu1c lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Ul_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu1c");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu1c.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "BFu8s_Ul_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu1c, BFu8s_Ul_BFu1c)
//============================================================================



static void Test_BFu8s_Ul_BFu1i()
{
  {
    init_simple_test("BFu8s_Ul_BFu1i");
    static STRUCT_IF_C BFu8s_Ul_BFu1i lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Ul_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu1i");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu1i.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "BFu8s_Ul_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu1i, BFu8s_Ul_BFu1i)
//============================================================================



static void Test_BFu8s_Ul_BFu1ll()
{
  {
    init_simple_test("BFu8s_Ul_BFu1ll");
    static STRUCT_IF_C BFu8s_Ul_BFu1ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Ul_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu1ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu1ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "BFu8s_Ul_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu1ll, BFu8s_Ul_BFu1ll)
//============================================================================



static void Test_BFu8s_Ul_BFu1s()
{
  {
    init_simple_test("BFu8s_Ul_BFu1s");
    static STRUCT_IF_C BFu8s_Ul_BFu1s lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Ul_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu1s");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu1s.v2");
    set_bf_and_test(lv, v3, 9, 0, 1, 1, "BFu8s_Ul_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu1s, BFu8s_Ul_BFu1s)
//============================================================================



static void Test_BFu8s_Ul_BFu31i()
{
  {
    init_simple_test("BFu8s_Ul_BFu31i");
    static STRUCT_IF_C BFu8s_Ul_BFu31i lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_Ul_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu31i");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu31i.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "BFu8s_Ul_BFu31i");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "BFu8s_Ul_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu31i, BFu8s_Ul_BFu31i)
//============================================================================



static void Test_BFu8s_Ul_BFu31ll()
{
  {
    init_simple_test("BFu8s_Ul_BFu31ll");
    static STRUCT_IF_C BFu8s_Ul_BFu31ll lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_Ul_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu31ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu31ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 31, 1, "BFu8s_Ul_BFu31ll");
    set_bf_and_test(lv, v3, 9, 0, 31, hide_ull(1LL<<30), "BFu8s_Ul_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu31ll, BFu8s_Ul_BFu31ll)
//============================================================================



static void Test_BFu8s_Ul_BFu32i()
{
  {
    init_simple_test("BFu8s_Ul_BFu32i");
    static STRUCT_IF_C BFu8s_Ul_BFu32i lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_Ul_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu32i");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu32i.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "BFu8s_Ul_BFu32i");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "BFu8s_Ul_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu32i, BFu8s_Ul_BFu32i)
//============================================================================



static void Test_BFu8s_Ul_BFu32ll()
{
  {
    init_simple_test("BFu8s_Ul_BFu32ll");
    static STRUCT_IF_C BFu8s_Ul_BFu32ll lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_Ul_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu32ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu32ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 32, 1, "BFu8s_Ul_BFu32ll");
    set_bf_and_test(lv, v3, 9, 0, 32, hide_ull(1LL<<31), "BFu8s_Ul_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu32ll, BFu8s_Ul_BFu32ll)
//============================================================================



static void Test_BFu8s_Ul_BFu33()
{
  {
    init_simple_test("BFu8s_Ul_BFu33");
    static STRUCT_IF_C BFu8s_Ul_BFu33 lv;
    check2(sizeof(lv), 14, "sizeof(BFu8s_Ul_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu33");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu33.v2");
    set_bf_and_test(lv, v3, 9, 0, 33, 1, "BFu8s_Ul_BFu33");
    set_bf_and_test(lv, v3, 9, 0, 33, hide_ull(1LL<<32), "BFu8s_Ul_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu33, BFu8s_Ul_BFu33)
//============================================================================



static void Test_BFu8s_Ul_BFu7c()
{
  {
    init_simple_test("BFu8s_Ul_BFu7c");
    static STRUCT_IF_C BFu8s_Ul_BFu7c lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Ul_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu7c");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu7c.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "BFu8s_Ul_BFu7c");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "BFu8s_Ul_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu7c, BFu8s_Ul_BFu7c)
//============================================================================



static void Test_BFu8s_Ul_BFu7i()
{
  {
    init_simple_test("BFu8s_Ul_BFu7i");
    static STRUCT_IF_C BFu8s_Ul_BFu7i lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Ul_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu7i");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu7i.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "BFu8s_Ul_BFu7i");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "BFu8s_Ul_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu7i, BFu8s_Ul_BFu7i)
//============================================================================



static void Test_BFu8s_Ul_BFu7ll()
{
  {
    init_simple_test("BFu8s_Ul_BFu7ll");
    static STRUCT_IF_C BFu8s_Ul_BFu7ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Ul_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu7ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu7ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "BFu8s_Ul_BFu7ll");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "BFu8s_Ul_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu7ll, BFu8s_Ul_BFu7ll)
//============================================================================



static void Test_BFu8s_Ul_BFu7s()
{
  {
    init_simple_test("BFu8s_Ul_BFu7s");
    static STRUCT_IF_C BFu8s_Ul_BFu7s lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Ul_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu7s");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu7s.v2");
    set_bf_and_test(lv, v3, 9, 0, 7, 1, "BFu8s_Ul_BFu7s");
    set_bf_and_test(lv, v3, 9, 0, 7, hide_ull(1LL<<6), "BFu8s_Ul_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu7s, BFu8s_Ul_BFu7s)
//============================================================================



static void Test_BFu8s_Ul_BFu8c()
{
  {
    init_simple_test("BFu8s_Ul_BFu8c");
    static STRUCT_IF_C BFu8s_Ul_BFu8c lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Ul_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu8c");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu8c.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "BFu8s_Ul_BFu8c");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu8c, BFu8s_Ul_BFu8c)
//============================================================================



static void Test_BFu8s_Ul_BFu8i()
{
  {
    init_simple_test("BFu8s_Ul_BFu8i");
    static STRUCT_IF_C BFu8s_Ul_BFu8i lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Ul_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu8i");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu8i.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "BFu8s_Ul_BFu8i");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu8i, BFu8s_Ul_BFu8i)
//============================================================================



static void Test_BFu8s_Ul_BFu8ll()
{
  {
    init_simple_test("BFu8s_Ul_BFu8ll");
    static STRUCT_IF_C BFu8s_Ul_BFu8ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Ul_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu8ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu8ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "BFu8s_Ul_BFu8ll");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu8ll, BFu8s_Ul_BFu8ll)
//============================================================================



static void Test_BFu8s_Ul_BFu8s()
{
  {
    init_simple_test("BFu8s_Ul_BFu8s");
    static STRUCT_IF_C BFu8s_Ul_BFu8s lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Ul_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu8s");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu8s.v2");
    set_bf_and_test(lv, v3, 9, 0, 8, 1, "BFu8s_Ul_BFu8s");
    set_bf_and_test(lv, v3, 9, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu8s, BFu8s_Ul_BFu8s)
//============================================================================



static void Test_BFu8s_Ul_BFu9i()
{
  {
    init_simple_test("BFu8s_Ul_BFu9i");
    static STRUCT_IF_C BFu8s_Ul_BFu9i lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_Ul_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu9i");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu9i.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "BFu8s_Ul_BFu9i");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "BFu8s_Ul_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu9i, BFu8s_Ul_BFu9i)
//============================================================================



static void Test_BFu8s_Ul_BFu9ll()
{
  {
    init_simple_test("BFu8s_Ul_BFu9ll");
    static STRUCT_IF_C BFu8s_Ul_BFu9ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_Ul_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu9ll");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu9ll.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "BFu8s_Ul_BFu9ll");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "BFu8s_Ul_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu9ll, BFu8s_Ul_BFu9ll)
//============================================================================



static void Test_BFu8s_Ul_BFu9s()
{
  {
    init_simple_test("BFu8s_Ul_BFu9s");
    static STRUCT_IF_C BFu8s_Ul_BFu9s lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_Ul_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_BFu9s");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_BFu9s.v2");
    set_bf_and_test(lv, v3, 9, 0, 9, 1, "BFu8s_Ul_BFu9s");
    set_bf_and_test(lv, v3, 9, 0, 9, hide_ull(1LL<<8), "BFu8s_Ul_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_BFu9s, BFu8s_Ul_BFu9s)
//============================================================================



static void Test_BFu8s_Ul_C()
{
  {
    init_simple_test("BFu8s_Ul_C");
    static STRUCT_IF_C BFu8s_Ul_C lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Ul_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_C");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_C.v2");
    check_field_offset(lv, v3, 9, "BFu8s_Ul_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_C, BFu8s_Ul_C)
//============================================================================



static void Test_BFu8s_Ul_D()
{
  {
    init_simple_test("BFu8s_Ul_D");
    static STRUCT_IF_C BFu8s_Ul_D lv;
    check2(sizeof(lv), 17, "sizeof(BFu8s_Ul_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_D");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_D.v2");
    check_field_offset(lv, v3, 9, "BFu8s_Ul_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_D, BFu8s_Ul_D)
//============================================================================



static void Test_BFu8s_Ul_F()
{
  {
    init_simple_test("BFu8s_Ul_F");
    static STRUCT_IF_C BFu8s_Ul_F lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_Ul_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_F");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_F.v2");
    check_field_offset(lv, v3, 9, "BFu8s_Ul_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_F, BFu8s_Ul_F)
//============================================================================



static void Test_BFu8s_Ul_I()
{
  {
    init_simple_test("BFu8s_Ul_I");
    static STRUCT_IF_C BFu8s_Ul_I lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_Ul_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_I");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_I.v2");
    check_field_offset(lv, v3, 9, "BFu8s_Ul_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_I, BFu8s_Ul_I)
//============================================================================



static void Test_BFu8s_Ul_Ip()
{
  {
    init_simple_test("BFu8s_Ul_Ip");
    static STRUCT_IF_C BFu8s_Ul_Ip lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(BFu8s_Ul_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_Ip");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_Ip.v2");
    check_field_offset(lv, v3, 9, "BFu8s_Ul_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_Ip, BFu8s_Ul_Ip)
//============================================================================



static void Test_BFu8s_Ul_L()
{
  {
    init_simple_test("BFu8s_Ul_L");
    static STRUCT_IF_C BFu8s_Ul_L lv;
    check2(sizeof(lv), 17, "sizeof(BFu8s_Ul_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_L");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_L.v2");
    check_field_offset(lv, v3, 9, "BFu8s_Ul_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_L, BFu8s_Ul_L)
//============================================================================



static void Test_BFu8s_Ul_S()
{
  {
    init_simple_test("BFu8s_Ul_S");
    static STRUCT_IF_C BFu8s_Ul_S lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_Ul_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_S");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_S.v2");
    check_field_offset(lv, v3, 9, "BFu8s_Ul_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_S, BFu8s_Ul_S)
//============================================================================



static void Test_BFu8s_Ul_Uc()
{
  {
    init_simple_test("BFu8s_Ul_Uc");
    static STRUCT_IF_C BFu8s_Ul_Uc lv;
    check2(sizeof(lv), 10, "sizeof(BFu8s_Ul_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_Uc");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_Uc.v2");
    check_field_offset(lv, v3, 9, "BFu8s_Ul_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_Uc, BFu8s_Ul_Uc)
//============================================================================



static void Test_BFu8s_Ul_Ui()
{
  {
    init_simple_test("BFu8s_Ul_Ui");
    static STRUCT_IF_C BFu8s_Ul_Ui lv;
    check2(sizeof(lv), 13, "sizeof(BFu8s_Ul_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_Ui");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_Ui.v2");
    check_field_offset(lv, v3, 9, "BFu8s_Ul_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_Ui, BFu8s_Ul_Ui)
//============================================================================



static void Test_BFu8s_Ul_Ul()
{
  {
    init_simple_test("BFu8s_Ul_Ul");
    static STRUCT_IF_C BFu8s_Ul_Ul lv;
    check2(sizeof(lv), 17, "sizeof(BFu8s_Ul_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_Ul");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_Ul.v2");
    check_field_offset(lv, v3, 9, "BFu8s_Ul_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_Ul, BFu8s_Ul_Ul)
//============================================================================



static void Test_BFu8s_Ul_Us()
{
  {
    init_simple_test("BFu8s_Ul_Us");
    static STRUCT_IF_C BFu8s_Ul_Us lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_Ul_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_Us");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_Us.v2");
    check_field_offset(lv, v3, 9, "BFu8s_Ul_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_Us, BFu8s_Ul_Us)
//============================================================================



static void Test_BFu8s_Ul_Vp()
{
  {
    init_simple_test("BFu8s_Ul_Vp");
    static STRUCT_IF_C BFu8s_Ul_Vp lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(BFu8s_Ul_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Ul_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Ul_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Ul_Vp");
    check_field_offset(lv, v2, 1, "BFu8s_Ul_Vp.v2");
    check_field_offset(lv, v3, 9, "BFu8s_Ul_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Ul_Vp, BFu8s_Ul_Vp)
//============================================================================



static void Test_BFu8s_Us()
{
  {
    init_simple_test("BFu8s_Us");
    static STRUCT_IF_C BFu8s_Us lv;
    check2(sizeof(lv), 3, "sizeof(BFu8s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us");
    check_field_offset(lv, v2, 1, "BFu8s_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us, BFu8s_Us)
//============================================================================



static void Test_BFu8s_Us_BFu15i()
{
  {
    init_simple_test("BFu8s_Us_BFu15i");
    static STRUCT_IF_C BFu8s_Us_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_Us_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu15i");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu15i.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu8s_Us_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu8s_Us_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu15i, BFu8s_Us_BFu15i)
//============================================================================



static void Test_BFu8s_Us_BFu15ll()
{
  {
    init_simple_test("BFu8s_Us_BFu15ll");
    static STRUCT_IF_C BFu8s_Us_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_Us_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu15ll");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu15ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu8s_Us_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu8s_Us_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu15ll, BFu8s_Us_BFu15ll)
//============================================================================



static void Test_BFu8s_Us_BFu15s()
{
  {
    init_simple_test("BFu8s_Us_BFu15s");
    static STRUCT_IF_C BFu8s_Us_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_Us_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu15s");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu15s.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu8s_Us_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu8s_Us_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu15s, BFu8s_Us_BFu15s)
//============================================================================



static void Test_BFu8s_Us_BFu16i()
{
  {
    init_simple_test("BFu8s_Us_BFu16i");
    static STRUCT_IF_C BFu8s_Us_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_Us_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu16i");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu16i.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu8s_Us_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu8s_Us_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu16i, BFu8s_Us_BFu16i)
//============================================================================



static void Test_BFu8s_Us_BFu16ll()
{
  {
    init_simple_test("BFu8s_Us_BFu16ll");
    static STRUCT_IF_C BFu8s_Us_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_Us_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu16ll");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu16ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu8s_Us_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu8s_Us_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu16ll, BFu8s_Us_BFu16ll)
//============================================================================



static void Test_BFu8s_Us_BFu16s()
{
  {
    init_simple_test("BFu8s_Us_BFu16s");
    static STRUCT_IF_C BFu8s_Us_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_Us_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu16s");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu16s.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu8s_Us_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu8s_Us_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu16s, BFu8s_Us_BFu16s)
//============================================================================



static void Test_BFu8s_Us_BFu17i()
{
  {
    init_simple_test("BFu8s_Us_BFu17i");
    static STRUCT_IF_C BFu8s_Us_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Us_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu17i");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu17i.v2");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu8s_Us_BFu17i");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu8s_Us_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu17i, BFu8s_Us_BFu17i)
//============================================================================



static void Test_BFu8s_Us_BFu17ll()
{
  {
    init_simple_test("BFu8s_Us_BFu17ll");
    static STRUCT_IF_C BFu8s_Us_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu8s_Us_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu17ll");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu17ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu8s_Us_BFu17ll");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu8s_Us_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu17ll, BFu8s_Us_BFu17ll)
//============================================================================



static void Test_BFu8s_Us_BFu1c()
{
  {
    init_simple_test("BFu8s_Us_BFu1c");
    static STRUCT_IF_C BFu8s_Us_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Us_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu1c");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu1c.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu8s_Us_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu1c, BFu8s_Us_BFu1c)
//============================================================================



static void Test_BFu8s_Us_BFu1i()
{
  {
    init_simple_test("BFu8s_Us_BFu1i");
    static STRUCT_IF_C BFu8s_Us_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Us_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu1i");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu1i.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu8s_Us_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu1i, BFu8s_Us_BFu1i)
//============================================================================



static void Test_BFu8s_Us_BFu1ll()
{
  {
    init_simple_test("BFu8s_Us_BFu1ll");
    static STRUCT_IF_C BFu8s_Us_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Us_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu1ll");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu1ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu8s_Us_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu1ll, BFu8s_Us_BFu1ll)
//============================================================================



static void Test_BFu8s_Us_BFu1s()
{
  {
    init_simple_test("BFu8s_Us_BFu1s");
    static STRUCT_IF_C BFu8s_Us_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Us_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu1s");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu1s.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu8s_Us_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu1s, BFu8s_Us_BFu1s)
//============================================================================



static void Test_BFu8s_Us_BFu31i()
{
  {
    init_simple_test("BFu8s_Us_BFu31i");
    static STRUCT_IF_C BFu8s_Us_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Us_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu31i");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu31i.v2");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu8s_Us_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu8s_Us_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu31i, BFu8s_Us_BFu31i)
//============================================================================



static void Test_BFu8s_Us_BFu31ll()
{
  {
    init_simple_test("BFu8s_Us_BFu31ll");
    static STRUCT_IF_C BFu8s_Us_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Us_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu31ll");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu31ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu8s_Us_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu8s_Us_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu31ll, BFu8s_Us_BFu31ll)
//============================================================================



static void Test_BFu8s_Us_BFu32i()
{
  {
    init_simple_test("BFu8s_Us_BFu32i");
    static STRUCT_IF_C BFu8s_Us_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Us_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu32i");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu32i.v2");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu8s_Us_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu8s_Us_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu32i, BFu8s_Us_BFu32i)
//============================================================================



static void Test_BFu8s_Us_BFu32ll()
{
  {
    init_simple_test("BFu8s_Us_BFu32ll");
    static STRUCT_IF_C BFu8s_Us_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Us_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu32ll");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu32ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu8s_Us_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu8s_Us_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu32ll, BFu8s_Us_BFu32ll)
//============================================================================



static void Test_BFu8s_Us_BFu33()
{
  {
    init_simple_test("BFu8s_Us_BFu33");
    static STRUCT_IF_C BFu8s_Us_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu8s_Us_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu33");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu33.v2");
    set_bf_and_test(lv, v3, 3, 0, 33, 1, "BFu8s_Us_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, hide_ull(1LL<<32), "BFu8s_Us_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu33, BFu8s_Us_BFu33)
//============================================================================



static void Test_BFu8s_Us_BFu7c()
{
  {
    init_simple_test("BFu8s_Us_BFu7c");
    static STRUCT_IF_C BFu8s_Us_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Us_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu7c");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu7c.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu8s_Us_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu8s_Us_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu7c, BFu8s_Us_BFu7c)
//============================================================================



static void Test_BFu8s_Us_BFu7i()
{
  {
    init_simple_test("BFu8s_Us_BFu7i");
    static STRUCT_IF_C BFu8s_Us_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Us_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu7i");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu7i.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu8s_Us_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu8s_Us_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu7i, BFu8s_Us_BFu7i)
//============================================================================



static void Test_BFu8s_Us_BFu7ll()
{
  {
    init_simple_test("BFu8s_Us_BFu7ll");
    static STRUCT_IF_C BFu8s_Us_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Us_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu7ll");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu7ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu8s_Us_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu8s_Us_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu7ll, BFu8s_Us_BFu7ll)
//============================================================================



static void Test_BFu8s_Us_BFu7s()
{
  {
    init_simple_test("BFu8s_Us_BFu7s");
    static STRUCT_IF_C BFu8s_Us_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Us_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu7s");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu7s.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu8s_Us_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu8s_Us_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu7s, BFu8s_Us_BFu7s)
//============================================================================



static void Test_BFu8s_Us_BFu8c()
{
  {
    init_simple_test("BFu8s_Us_BFu8c");
    static STRUCT_IF_C BFu8s_Us_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Us_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu8c");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu8c.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu8s_Us_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu8c, BFu8s_Us_BFu8c)
//============================================================================



static void Test_BFu8s_Us_BFu8i()
{
  {
    init_simple_test("BFu8s_Us_BFu8i");
    static STRUCT_IF_C BFu8s_Us_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Us_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu8i");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu8i.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu8s_Us_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu8i, BFu8s_Us_BFu8i)
//============================================================================



static void Test_BFu8s_Us_BFu8ll()
{
  {
    init_simple_test("BFu8s_Us_BFu8ll");
    static STRUCT_IF_C BFu8s_Us_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Us_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu8ll");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu8ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu8s_Us_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu8ll, BFu8s_Us_BFu8ll)
//============================================================================



static void Test_BFu8s_Us_BFu8s()
{
  {
    init_simple_test("BFu8s_Us_BFu8s");
    static STRUCT_IF_C BFu8s_Us_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Us_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu8s");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu8s.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu8s_Us_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu8s, BFu8s_Us_BFu8s)
//============================================================================



static void Test_BFu8s_Us_BFu9i()
{
  {
    init_simple_test("BFu8s_Us_BFu9i");
    static STRUCT_IF_C BFu8s_Us_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_Us_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu9i");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu9i.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu8s_Us_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu8s_Us_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu9i, BFu8s_Us_BFu9i)
//============================================================================



static void Test_BFu8s_Us_BFu9ll()
{
  {
    init_simple_test("BFu8s_Us_BFu9ll");
    static STRUCT_IF_C BFu8s_Us_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_Us_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu9ll");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu9ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu8s_Us_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu8s_Us_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu9ll, BFu8s_Us_BFu9ll)
//============================================================================



static void Test_BFu8s_Us_BFu9s()
{
  {
    init_simple_test("BFu8s_Us_BFu9s");
    static STRUCT_IF_C BFu8s_Us_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_Us_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_BFu9s");
    check_field_offset(lv, v2, 1, "BFu8s_Us_BFu9s.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu8s_Us_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu8s_Us_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_BFu9s, BFu8s_Us_BFu9s)
//============================================================================



static void Test_BFu8s_Us_C()
{
  {
    init_simple_test("BFu8s_Us_C");
    static STRUCT_IF_C BFu8s_Us_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Us_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_C");
    check_field_offset(lv, v2, 1, "BFu8s_Us_C.v2");
    check_field_offset(lv, v3, 3, "BFu8s_Us_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_C, BFu8s_Us_C)
//============================================================================



static void Test_BFu8s_Us_D()
{
  {
    init_simple_test("BFu8s_Us_D");
    static STRUCT_IF_C BFu8s_Us_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_Us_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_D");
    check_field_offset(lv, v2, 1, "BFu8s_Us_D.v2");
    check_field_offset(lv, v3, 3, "BFu8s_Us_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_D, BFu8s_Us_D)
//============================================================================



static void Test_BFu8s_Us_F()
{
  {
    init_simple_test("BFu8s_Us_F");
    static STRUCT_IF_C BFu8s_Us_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Us_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_F");
    check_field_offset(lv, v2, 1, "BFu8s_Us_F.v2");
    check_field_offset(lv, v3, 3, "BFu8s_Us_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_F, BFu8s_Us_F)
//============================================================================



static void Test_BFu8s_Us_I()
{
  {
    init_simple_test("BFu8s_Us_I");
    static STRUCT_IF_C BFu8s_Us_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Us_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_I");
    check_field_offset(lv, v2, 1, "BFu8s_Us_I.v2");
    check_field_offset(lv, v3, 3, "BFu8s_Us_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_I, BFu8s_Us_I)
//============================================================================



static void Test_BFu8s_Us_Ip()
{
  {
    init_simple_test("BFu8s_Us_Ip");
    static STRUCT_IF_C BFu8s_Us_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Us_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_Ip");
    check_field_offset(lv, v2, 1, "BFu8s_Us_Ip.v2");
    check_field_offset(lv, v3, 3, "BFu8s_Us_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_Ip, BFu8s_Us_Ip)
//============================================================================



static void Test_BFu8s_Us_L()
{
  {
    init_simple_test("BFu8s_Us_L");
    static STRUCT_IF_C BFu8s_Us_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_Us_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_L");
    check_field_offset(lv, v2, 1, "BFu8s_Us_L.v2");
    check_field_offset(lv, v3, 3, "BFu8s_Us_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_L, BFu8s_Us_L)
//============================================================================



static void Test_BFu8s_Us_S()
{
  {
    init_simple_test("BFu8s_Us_S");
    static STRUCT_IF_C BFu8s_Us_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_Us_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_S");
    check_field_offset(lv, v2, 1, "BFu8s_Us_S.v2");
    check_field_offset(lv, v3, 3, "BFu8s_Us_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_S, BFu8s_Us_S)
//============================================================================



static void Test_BFu8s_Us_Uc()
{
  {
    init_simple_test("BFu8s_Us_Uc");
    static STRUCT_IF_C BFu8s_Us_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu8s_Us_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_Uc");
    check_field_offset(lv, v2, 1, "BFu8s_Us_Uc.v2");
    check_field_offset(lv, v3, 3, "BFu8s_Us_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_Uc, BFu8s_Us_Uc)
//============================================================================



static void Test_BFu8s_Us_Ui()
{
  {
    init_simple_test("BFu8s_Us_Ui");
    static STRUCT_IF_C BFu8s_Us_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu8s_Us_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_Ui");
    check_field_offset(lv, v2, 1, "BFu8s_Us_Ui.v2");
    check_field_offset(lv, v3, 3, "BFu8s_Us_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_Ui, BFu8s_Us_Ui)
//============================================================================



static void Test_BFu8s_Us_Ul()
{
  {
    init_simple_test("BFu8s_Us_Ul");
    static STRUCT_IF_C BFu8s_Us_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu8s_Us_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_Ul");
    check_field_offset(lv, v2, 1, "BFu8s_Us_Ul.v2");
    check_field_offset(lv, v3, 3, "BFu8s_Us_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_Ul, BFu8s_Us_Ul)
//============================================================================



static void Test_BFu8s_Us_Us()
{
  {
    init_simple_test("BFu8s_Us_Us");
    static STRUCT_IF_C BFu8s_Us_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu8s_Us_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_Us");
    check_field_offset(lv, v2, 1, "BFu8s_Us_Us.v2");
    check_field_offset(lv, v3, 3, "BFu8s_Us_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_Us, BFu8s_Us_Us)
//============================================================================



static void Test_BFu8s_Us_Vp()
{
  {
    init_simple_test("BFu8s_Us_Vp");
    static STRUCT_IF_C BFu8s_Us_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Us_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Us_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Us_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Us_Vp");
    check_field_offset(lv, v2, 1, "BFu8s_Us_Vp.v2");
    check_field_offset(lv, v3, 3, "BFu8s_Us_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Us_Vp, BFu8s_Us_Vp)
//============================================================================



static void Test_BFu8s_Vp()
{
  {
    init_simple_test("BFu8s_Vp");
    static STRUCT_IF_C BFu8s_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(BFu8s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp");
    check_field_offset(lv, v2, 1, "BFu8s_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp, BFu8s_Vp)
//============================================================================



static void Test_BFu8s_Vp_BFu15i()
{
  {
    init_simple_test("BFu8s_Vp_BFu15i");
    static STRUCT_IF_C BFu8s_Vp_BFu15i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Vp_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu15i");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu15i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "BFu8s_Vp_BFu15i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "BFu8s_Vp_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu15i, BFu8s_Vp_BFu15i)
//============================================================================



static void Test_BFu8s_Vp_BFu15ll()
{
  {
    init_simple_test("BFu8s_Vp_BFu15ll");
    static STRUCT_IF_C BFu8s_Vp_BFu15ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Vp_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu15ll");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu15ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "BFu8s_Vp_BFu15ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "BFu8s_Vp_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu15ll, BFu8s_Vp_BFu15ll)
//============================================================================



static void Test_BFu8s_Vp_BFu15s()
{
  {
    init_simple_test("BFu8s_Vp_BFu15s");
    static STRUCT_IF_C BFu8s_Vp_BFu15s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Vp_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu15s");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu15s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, 1, "BFu8s_Vp_BFu15s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 15, hide_ull(1LL<<14), "BFu8s_Vp_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu15s, BFu8s_Vp_BFu15s)
//============================================================================



static void Test_BFu8s_Vp_BFu16i()
{
  {
    init_simple_test("BFu8s_Vp_BFu16i");
    static STRUCT_IF_C BFu8s_Vp_BFu16i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Vp_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu16i");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu16i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "BFu8s_Vp_BFu16i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "BFu8s_Vp_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu16i, BFu8s_Vp_BFu16i)
//============================================================================



static void Test_BFu8s_Vp_BFu16ll()
{
  {
    init_simple_test("BFu8s_Vp_BFu16ll");
    static STRUCT_IF_C BFu8s_Vp_BFu16ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Vp_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu16ll");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu16ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "BFu8s_Vp_BFu16ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "BFu8s_Vp_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu16ll, BFu8s_Vp_BFu16ll)
//============================================================================



static void Test_BFu8s_Vp_BFu16s()
{
  {
    init_simple_test("BFu8s_Vp_BFu16s");
    static STRUCT_IF_C BFu8s_Vp_BFu16s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Vp_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu16s");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu16s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, 1, "BFu8s_Vp_BFu16s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 16, hide_ull(1LL<<15), "BFu8s_Vp_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu16s, BFu8s_Vp_BFu16s)
//============================================================================



static void Test_BFu8s_Vp_BFu17i()
{
  {
    init_simple_test("BFu8s_Vp_BFu17i");
    static STRUCT_IF_C BFu8s_Vp_BFu17i lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu8s_Vp_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu17i");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu17i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, 1, "BFu8s_Vp_BFu17i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, hide_ull(1LL<<16), "BFu8s_Vp_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu17i, BFu8s_Vp_BFu17i)
//============================================================================



static void Test_BFu8s_Vp_BFu17ll()
{
  {
    init_simple_test("BFu8s_Vp_BFu17ll");
    static STRUCT_IF_C BFu8s_Vp_BFu17ll lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu8s_Vp_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu17ll");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu17ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, 1, "BFu8s_Vp_BFu17ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 17, hide_ull(1LL<<16), "BFu8s_Vp_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu17ll, BFu8s_Vp_BFu17ll)
//============================================================================



static void Test_BFu8s_Vp_BFu1c()
{
  {
    init_simple_test("BFu8s_Vp_BFu1c");
    static STRUCT_IF_C BFu8s_Vp_BFu1c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Vp_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu1c");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu1c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "BFu8s_Vp_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu1c, BFu8s_Vp_BFu1c)
//============================================================================



static void Test_BFu8s_Vp_BFu1i()
{
  {
    init_simple_test("BFu8s_Vp_BFu1i");
    static STRUCT_IF_C BFu8s_Vp_BFu1i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Vp_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu1i");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu1i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "BFu8s_Vp_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu1i, BFu8s_Vp_BFu1i)
//============================================================================



static void Test_BFu8s_Vp_BFu1ll()
{
  {
    init_simple_test("BFu8s_Vp_BFu1ll");
    static STRUCT_IF_C BFu8s_Vp_BFu1ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Vp_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu1ll");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu1ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "BFu8s_Vp_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu1ll, BFu8s_Vp_BFu1ll)
//============================================================================



static void Test_BFu8s_Vp_BFu1s()
{
  {
    init_simple_test("BFu8s_Vp_BFu1s");
    static STRUCT_IF_C BFu8s_Vp_BFu1s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Vp_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu1s");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu1s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 1, 1, "BFu8s_Vp_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu1s, BFu8s_Vp_BFu1s)
//============================================================================



static void Test_BFu8s_Vp_BFu31i()
{
  {
    init_simple_test("BFu8s_Vp_BFu31i");
    static STRUCT_IF_C BFu8s_Vp_BFu31i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_Vp_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu31i");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu31i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, 1, "BFu8s_Vp_BFu31i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, hide_ull(1LL<<30), "BFu8s_Vp_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu31i, BFu8s_Vp_BFu31i)
//============================================================================



static void Test_BFu8s_Vp_BFu31ll()
{
  {
    init_simple_test("BFu8s_Vp_BFu31ll");
    static STRUCT_IF_C BFu8s_Vp_BFu31ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_Vp_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu31ll");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu31ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, 1, "BFu8s_Vp_BFu31ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 31, hide_ull(1LL<<30), "BFu8s_Vp_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu31ll, BFu8s_Vp_BFu31ll)
//============================================================================



static void Test_BFu8s_Vp_BFu32i()
{
  {
    init_simple_test("BFu8s_Vp_BFu32i");
    static STRUCT_IF_C BFu8s_Vp_BFu32i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_Vp_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu32i");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu32i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, 1, "BFu8s_Vp_BFu32i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, hide_ull(1LL<<31), "BFu8s_Vp_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu32i, BFu8s_Vp_BFu32i)
//============================================================================



static void Test_BFu8s_Vp_BFu32ll()
{
  {
    init_simple_test("BFu8s_Vp_BFu32ll");
    static STRUCT_IF_C BFu8s_Vp_BFu32ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_Vp_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu32ll");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu32ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, 1, "BFu8s_Vp_BFu32ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 32, hide_ull(1LL<<31), "BFu8s_Vp_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu32ll, BFu8s_Vp_BFu32ll)
//============================================================================



static void Test_BFu8s_Vp_BFu33()
{
  {
    init_simple_test("BFu8s_Vp_BFu33");
    static STRUCT_IF_C BFu8s_Vp_BFu33 lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu8s_Vp_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu33");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu33.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 33, 1, "BFu8s_Vp_BFu33");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 33, hide_ull(1LL<<32), "BFu8s_Vp_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu33, BFu8s_Vp_BFu33)
//============================================================================



static void Test_BFu8s_Vp_BFu7c()
{
  {
    init_simple_test("BFu8s_Vp_BFu7c");
    static STRUCT_IF_C BFu8s_Vp_BFu7c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Vp_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu7c");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu7c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "BFu8s_Vp_BFu7c");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "BFu8s_Vp_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu7c, BFu8s_Vp_BFu7c)
//============================================================================



static void Test_BFu8s_Vp_BFu7i()
{
  {
    init_simple_test("BFu8s_Vp_BFu7i");
    static STRUCT_IF_C BFu8s_Vp_BFu7i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Vp_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu7i");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu7i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "BFu8s_Vp_BFu7i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "BFu8s_Vp_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu7i, BFu8s_Vp_BFu7i)
//============================================================================



static void Test_BFu8s_Vp_BFu7ll()
{
  {
    init_simple_test("BFu8s_Vp_BFu7ll");
    static STRUCT_IF_C BFu8s_Vp_BFu7ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Vp_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu7ll");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu7ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "BFu8s_Vp_BFu7ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "BFu8s_Vp_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu7ll, BFu8s_Vp_BFu7ll)
//============================================================================



static void Test_BFu8s_Vp_BFu7s()
{
  {
    init_simple_test("BFu8s_Vp_BFu7s");
    static STRUCT_IF_C BFu8s_Vp_BFu7s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Vp_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu7s");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu7s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, 1, "BFu8s_Vp_BFu7s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 7, hide_ull(1LL<<6), "BFu8s_Vp_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu7s, BFu8s_Vp_BFu7s)
//============================================================================



static void Test_BFu8s_Vp_BFu8c()
{
  {
    init_simple_test("BFu8s_Vp_BFu8c");
    static STRUCT_IF_C BFu8s_Vp_BFu8c lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Vp_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu8c");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu8c.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "BFu8s_Vp_BFu8c");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu8c, BFu8s_Vp_BFu8c)
//============================================================================



static void Test_BFu8s_Vp_BFu8i()
{
  {
    init_simple_test("BFu8s_Vp_BFu8i");
    static STRUCT_IF_C BFu8s_Vp_BFu8i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Vp_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu8i");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu8i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "BFu8s_Vp_BFu8i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu8i, BFu8s_Vp_BFu8i)
//============================================================================



static void Test_BFu8s_Vp_BFu8ll()
{
  {
    init_simple_test("BFu8s_Vp_BFu8ll");
    static STRUCT_IF_C BFu8s_Vp_BFu8ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Vp_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu8ll");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu8ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "BFu8s_Vp_BFu8ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu8ll, BFu8s_Vp_BFu8ll)
//============================================================================



static void Test_BFu8s_Vp_BFu8s()
{
  {
    init_simple_test("BFu8s_Vp_BFu8s");
    static STRUCT_IF_C BFu8s_Vp_BFu8s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Vp_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu8s");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu8s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, 1, "BFu8s_Vp_BFu8s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu8s, BFu8s_Vp_BFu8s)
//============================================================================



static void Test_BFu8s_Vp_BFu9i()
{
  {
    init_simple_test("BFu8s_Vp_BFu9i");
    static STRUCT_IF_C BFu8s_Vp_BFu9i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Vp_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu9i");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu9i.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "BFu8s_Vp_BFu9i");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "BFu8s_Vp_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu9i, BFu8s_Vp_BFu9i)
//============================================================================



static void Test_BFu8s_Vp_BFu9ll()
{
  {
    init_simple_test("BFu8s_Vp_BFu9ll");
    static STRUCT_IF_C BFu8s_Vp_BFu9ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Vp_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu9ll");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu9ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "BFu8s_Vp_BFu9ll");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "BFu8s_Vp_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu9ll, BFu8s_Vp_BFu9ll)
//============================================================================



static void Test_BFu8s_Vp_BFu9s()
{
  {
    init_simple_test("BFu8s_Vp_BFu9s");
    static STRUCT_IF_C BFu8s_Vp_BFu9s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Vp_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_BFu9s");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_BFu9s.v2");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, 1, "BFu8s_Vp_BFu9s");
    set_bf_and_test(lv, v3, ABISELECT(9,5), 0, 9, hide_ull(1LL<<8), "BFu8s_Vp_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_BFu9s, BFu8s_Vp_BFu9s)
//============================================================================



static void Test_BFu8s_Vp_C()
{
  {
    init_simple_test("BFu8s_Vp_C");
    static STRUCT_IF_C BFu8s_Vp_C lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Vp_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_C");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_C.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Vp_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_C, BFu8s_Vp_C)
//============================================================================



static void Test_BFu8s_Vp_D()
{
  {
    init_simple_test("BFu8s_Vp_D");
    static STRUCT_IF_C BFu8s_Vp_D lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(BFu8s_Vp_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_D");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_D.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Vp_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_D, BFu8s_Vp_D)
//============================================================================



static void Test_BFu8s_Vp_F()
{
  {
    init_simple_test("BFu8s_Vp_F");
    static STRUCT_IF_C BFu8s_Vp_F lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_Vp_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_F");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_F.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Vp_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_F, BFu8s_Vp_F)
//============================================================================



static void Test_BFu8s_Vp_I()
{
  {
    init_simple_test("BFu8s_Vp_I");
    static STRUCT_IF_C BFu8s_Vp_I lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_Vp_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_I");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_I.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Vp_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_I, BFu8s_Vp_I)
//============================================================================



static void Test_BFu8s_Vp_Ip()
{
  {
    init_simple_test("BFu8s_Vp_Ip");
    static STRUCT_IF_C BFu8s_Vp_Ip lv;
    check2(sizeof(lv), ABISELECT(17,9), "sizeof(BFu8s_Vp_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_Ip");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_Ip.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Vp_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_Ip, BFu8s_Vp_Ip)
//============================================================================



static void Test_BFu8s_Vp_L()
{
  {
    init_simple_test("BFu8s_Vp_L");
    static STRUCT_IF_C BFu8s_Vp_L lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(BFu8s_Vp_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_L");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_L.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Vp_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_L, BFu8s_Vp_L)
//============================================================================



static void Test_BFu8s_Vp_S()
{
  {
    init_simple_test("BFu8s_Vp_S");
    static STRUCT_IF_C BFu8s_Vp_S lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Vp_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_S");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_S.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Vp_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_S, BFu8s_Vp_S)
//============================================================================



static void Test_BFu8s_Vp_Uc()
{
  {
    init_simple_test("BFu8s_Vp_Uc");
    static STRUCT_IF_C BFu8s_Vp_Uc lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu8s_Vp_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_Uc");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_Uc.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Vp_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_Uc, BFu8s_Vp_Uc)
//============================================================================



static void Test_BFu8s_Vp_Ui()
{
  {
    init_simple_test("BFu8s_Vp_Ui");
    static STRUCT_IF_C BFu8s_Vp_Ui lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu8s_Vp_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_Ui");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_Ui.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Vp_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_Ui, BFu8s_Vp_Ui)
//============================================================================



static void Test_BFu8s_Vp_Ul()
{
  {
    init_simple_test("BFu8s_Vp_Ul");
    static STRUCT_IF_C BFu8s_Vp_Ul lv;
    check2(sizeof(lv), ABISELECT(17,13), "sizeof(BFu8s_Vp_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_Ul");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_Ul.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Vp_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_Ul, BFu8s_Vp_Ul)
//============================================================================



static void Test_BFu8s_Vp_Us()
{
  {
    init_simple_test("BFu8s_Vp_Us");
    static STRUCT_IF_C BFu8s_Vp_Us lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu8s_Vp_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_Us");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_Us.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Vp_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_Us, BFu8s_Vp_Us)
//============================================================================



static void Test_BFu8s_Vp_Vp()
{
  {
    init_simple_test("BFu8s_Vp_Vp");
    static STRUCT_IF_C BFu8s_Vp_Vp lv;
    check2(sizeof(lv), ABISELECT(17,9), "sizeof(BFu8s_Vp_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu8s_Vp_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "BFu8s_Vp_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "BFu8s_Vp_Vp");
    check_field_offset(lv, v2, 1, "BFu8s_Vp_Vp.v2");
    check_field_offset(lv, v3, ABISELECT(9,5), "BFu8s_Vp_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu8s_Vp_Vp, BFu8s_Vp_Vp)
//============================================================================



static void Test_BFu9i()
{
  {
    init_simple_test("BFu9i");
    static STRUCT_IF_C BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i, BFu9i)
//============================================================================



static void Test_BFu9i_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i, BFu9i_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9i, BFu9i_BFs9i_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9i_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9i_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9i_BFs9i, BFu9i_BFs9i_BFs9i_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9i_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9i_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9i_BFs9ll, BFu9i_BFs9i_BFs9i_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9i_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9i_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9i_BFs9s, BFu9i_BFs9i_BFs9i_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9i_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9i_BFu9i, BFu9i_BFs9i_BFs9i_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9i_BFu9ll, BFu9i_BFs9i_BFs9i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9i_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9i_BFu9s, BFu9i_BFs9i_BFs9i_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9ll, BFu9i_BFs9i_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9ll_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9ll_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9ll_BFs9i, BFu9i_BFs9i_BFs9ll_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9ll_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9ll_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9ll_BFs9ll, BFu9i_BFs9i_BFs9ll_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9ll_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9ll_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9ll_BFs9s, BFu9i_BFs9i_BFs9ll_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9ll_BFu9i, BFu9i_BFs9i_BFs9ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9ll_BFu9ll, BFu9i_BFs9i_BFs9ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9ll_BFu9s, BFu9i_BFs9i_BFs9ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9s, BFu9i_BFs9i_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9s_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9s_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9s_BFs9i, BFu9i_BFs9i_BFs9s_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9s_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9s_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9s_BFs9ll, BFu9i_BFs9i_BFs9s_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9s_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9s_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9s_BFs9s, BFu9i_BFs9i_BFs9s_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9s_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9s_BFu9i, BFu9i_BFs9i_BFs9s_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9s_BFu9ll, BFu9i_BFs9i_BFs9s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9i_BFs9s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9i_BFs9s_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9i_BFs9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFs9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFs9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFs9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFs9s_BFu9s, BFu9i_BFs9i_BFs9s_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9i, BFu9i_BFs9i_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9i_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9i_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9i_BFs9i, BFu9i_BFs9i_BFu9i_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9i_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9i_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9i_BFs9ll, BFu9i_BFs9i_BFu9i_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9i_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9i_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9i_BFs9s, BFu9i_BFs9i_BFu9i_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9i_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9i_BFu9i, BFu9i_BFs9i_BFu9i_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9i_BFu9ll, BFu9i_BFs9i_BFu9i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9i_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9i_BFu9s, BFu9i_BFs9i_BFu9i_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9ll, BFu9i_BFs9i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9ll_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9ll_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9ll_BFs9i, BFu9i_BFs9i_BFu9ll_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9ll_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9ll_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9ll_BFs9ll, BFu9i_BFs9i_BFu9ll_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9ll_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9ll_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9ll_BFs9s, BFu9i_BFs9i_BFu9ll_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9ll_BFu9i, BFu9i_BFs9i_BFu9ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9ll_BFu9ll, BFu9i_BFs9i_BFu9ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9ll_BFu9s, BFu9i_BFs9i_BFu9ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9s, BFu9i_BFs9i_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9s_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9s_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9s_BFs9i, BFu9i_BFs9i_BFu9s_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9s_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9s_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9s_BFs9ll, BFu9i_BFs9i_BFu9s_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9s_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9s_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9s_BFs9s, BFu9i_BFs9i_BFu9s_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9s_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9s_BFu9i, BFu9i_BFs9i_BFu9s_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9s_BFu9ll, BFu9i_BFs9i_BFu9s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9i_BFu9s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9i_BFu9s_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9i_BFu9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9i_BFu9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9i_BFu9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9i_BFu9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9i_BFu9s_BFu9s, BFu9i_BFs9i_BFu9s_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll, BFu9i_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9i, BFu9i_BFs9ll_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9i_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9i_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9i_BFs9i, BFu9i_BFs9ll_BFs9i_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9i_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9i_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9i_BFs9ll, BFu9i_BFs9ll_BFs9i_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9i_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9i_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9i_BFs9s, BFu9i_BFs9ll_BFs9i_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9i_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9i_BFu9i, BFu9i_BFs9ll_BFs9i_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9i_BFu9ll, BFu9i_BFs9ll_BFs9i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9i_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9i_BFu9s, BFu9i_BFs9ll_BFs9i_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9ll, BFu9i_BFs9ll_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9ll_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9ll_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9ll_BFs9i, BFu9i_BFs9ll_BFs9ll_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9ll_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9ll_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9ll_BFs9ll, BFu9i_BFs9ll_BFs9ll_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9ll_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9ll_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9ll_BFs9s, BFu9i_BFs9ll_BFs9ll_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9ll_BFu9i, BFu9i_BFs9ll_BFs9ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9ll_BFu9ll, BFu9i_BFs9ll_BFs9ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9ll_BFu9s, BFu9i_BFs9ll_BFs9ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9s, BFu9i_BFs9ll_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9s_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9s_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9s_BFs9i, BFu9i_BFs9ll_BFs9s_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9s_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9s_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9s_BFs9ll, BFu9i_BFs9ll_BFs9s_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9s_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9s_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9s_BFs9s, BFu9i_BFs9ll_BFs9s_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9s_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9s_BFu9i, BFu9i_BFs9ll_BFs9s_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9s_BFu9ll, BFu9i_BFs9ll_BFs9s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9ll_BFs9s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFs9s_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9ll_BFs9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFs9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFs9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFs9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFs9s_BFu9s, BFu9i_BFs9ll_BFs9s_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9i, BFu9i_BFs9ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9i_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9i_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9i_BFs9i, BFu9i_BFs9ll_BFu9i_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9i_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9i_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9i_BFs9ll, BFu9i_BFs9ll_BFu9i_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9i_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9i_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9i_BFs9s, BFu9i_BFs9ll_BFu9i_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9i_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9i_BFu9i, BFu9i_BFs9ll_BFu9i_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9i_BFu9ll, BFu9i_BFs9ll_BFu9i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9i_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9i_BFu9s, BFu9i_BFs9ll_BFu9i_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9ll, BFu9i_BFs9ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9ll_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9ll_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9ll_BFs9i, BFu9i_BFs9ll_BFu9ll_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9ll_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9ll_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9ll_BFs9ll, BFu9i_BFs9ll_BFu9ll_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9ll_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9ll_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9ll_BFs9s, BFu9i_BFs9ll_BFu9ll_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9ll_BFu9i, BFu9i_BFs9ll_BFu9ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9ll_BFu9ll, BFu9i_BFs9ll_BFu9ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9ll_BFu9s, BFu9i_BFs9ll_BFu9ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9s, BFu9i_BFs9ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9s_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9s_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9s_BFs9i, BFu9i_BFs9ll_BFu9s_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9s_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9s_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9s_BFs9ll, BFu9i_BFs9ll_BFu9s_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9s_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9s_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9s_BFs9s, BFu9i_BFs9ll_BFu9s_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9s_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9s_BFu9i, BFu9i_BFs9ll_BFu9s_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9s_BFu9ll, BFu9i_BFs9ll_BFu9s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9ll_BFu9s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9ll_BFu9s_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9ll_BFu9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9ll_BFu9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9ll_BFu9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9ll_BFu9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9ll_BFu9s_BFu9s, BFu9i_BFs9ll_BFu9s_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s, BFu9i_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9i, BFu9i_BFs9s_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9i_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9i_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9i_BFs9i, BFu9i_BFs9s_BFs9i_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9i_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9i_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9i_BFs9ll, BFu9i_BFs9s_BFs9i_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9i_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9i_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9i_BFs9s, BFu9i_BFs9s_BFs9i_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9i_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9i_BFu9i, BFu9i_BFs9s_BFs9i_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9i_BFu9ll, BFu9i_BFs9s_BFs9i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9i_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9i_BFu9s, BFu9i_BFs9s_BFs9i_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9ll, BFu9i_BFs9s_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9ll_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9ll_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9ll_BFs9i, BFu9i_BFs9s_BFs9ll_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9ll_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9ll_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9ll_BFs9ll, BFu9i_BFs9s_BFs9ll_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9ll_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9ll_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9ll_BFs9s, BFu9i_BFs9s_BFs9ll_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9ll_BFu9i, BFu9i_BFs9s_BFs9ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9ll_BFu9ll, BFu9i_BFs9s_BFs9ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9ll_BFu9s, BFu9i_BFs9s_BFs9ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9s, BFu9i_BFs9s_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9s_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9s_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9s_BFs9i, BFu9i_BFs9s_BFs9s_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9s_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9s_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9s_BFs9ll, BFu9i_BFs9s_BFs9s_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9s_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9s_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9s_BFs9s, BFu9i_BFs9s_BFs9s_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9s_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9s_BFu9i, BFu9i_BFs9s_BFs9s_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9s_BFu9ll, BFu9i_BFs9s_BFs9s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9s_BFs9s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9s_BFs9s_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9s_BFs9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFs9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFs9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFs9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFs9s_BFu9s, BFu9i_BFs9s_BFs9s_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9i, BFu9i_BFs9s_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9i_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9i_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9i_BFs9i, BFu9i_BFs9s_BFu9i_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9i_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9i_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9i_BFs9ll, BFu9i_BFs9s_BFu9i_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9i_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9i_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9i_BFs9s, BFu9i_BFs9s_BFu9i_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9i_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9i_BFu9i, BFu9i_BFs9s_BFu9i_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9i_BFu9ll, BFu9i_BFs9s_BFu9i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9i_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9i_BFu9s, BFu9i_BFs9s_BFu9i_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9ll, BFu9i_BFs9s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9ll_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9ll_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9ll_BFs9i, BFu9i_BFs9s_BFu9ll_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9ll_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9ll_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9ll_BFs9ll, BFu9i_BFs9s_BFu9ll_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9ll_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9ll_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9ll_BFs9s, BFu9i_BFs9s_BFu9ll_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9ll_BFu9i, BFu9i_BFs9s_BFu9ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9ll_BFu9ll, BFu9i_BFs9s_BFu9ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9ll_BFu9s, BFu9i_BFs9s_BFu9ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFs9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9s, BFu9i_BFs9s_BFu9s)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9s_BFs9i()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9s_BFs9i");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9s_BFs9i, BFu9i_BFs9s_BFu9s_BFs9i)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9s_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9s_BFs9ll");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9s_BFs9ll, BFu9i_BFs9s_BFu9s_BFs9ll)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9s_BFs9s()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9s_BFs9s");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9s_BFs9s, BFu9i_BFs9s_BFu9s_BFs9s)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9s_BFu9i");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9s_BFu9i, BFu9i_BFs9s_BFu9s_BFu9i)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9s_BFu9ll, BFu9i_BFs9s_BFu9s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFs9s_BFu9s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFs9s_BFu9s_BFu9s");
    static STRUCT_IF_C BFu9i_BFs9s_BFu9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFs9s_BFu9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFs9s_BFu9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFs9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFs9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9i_BFs9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFs9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFs9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFs9s_BFu9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFs9s_BFu9s_BFu9s, BFu9i_BFs9s_BFu9s_BFu9s)
//============================================================================



static void Test_BFu9i_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu15i");
    static STRUCT_IF_C BFu9i_BFu15i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i, BFu9i_BFu15i)
//============================================================================



static void Test_BFu9i_BFu15i_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu15i");
    static STRUCT_IF_C BFu9i_BFu15i_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9i_BFu15i_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu15i, BFu9i_BFu15i_BFu15i)
//============================================================================



static void Test_BFu9i_BFu15i_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu15i_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9i_BFu15i_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu15ll, BFu9i_BFu15i_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu15i_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu15s");
    static STRUCT_IF_C BFu9i_BFu15i_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9i_BFu15i_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu15s, BFu9i_BFu15i_BFu15s)
//============================================================================



static void Test_BFu9i_BFu15i_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu16i");
    static STRUCT_IF_C BFu9i_BFu15i_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9i_BFu15i_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu15i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu16i, BFu9i_BFu15i_BFu16i)
//============================================================================



static void Test_BFu9i_BFu15i_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu15i_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9i_BFu15i_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu15i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu16ll, BFu9i_BFu15i_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu15i_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu16s");
    static STRUCT_IF_C BFu9i_BFu15i_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9i_BFu15i_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu15i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu16s, BFu9i_BFu15i_BFu16s)
//============================================================================



static void Test_BFu9i_BFu15i_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu17i");
    static STRUCT_IF_C BFu9i_BFu15i_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu15i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu17i");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu9i_BFu15i_BFu17i");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu15i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu17i, BFu9i_BFu15i_BFu17i)
//============================================================================



static void Test_BFu9i_BFu15i_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu15i_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu15i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu17ll");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu9i_BFu15i_BFu17ll");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu15i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu17ll, BFu9i_BFu15i_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu15i_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu1c");
    static STRUCT_IF_C BFu9i_BFu15i_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu1c");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_BFu15i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu1c, BFu9i_BFu15i_BFu1c)
//============================================================================



static void Test_BFu9i_BFu15i_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu1i");
    static STRUCT_IF_C BFu9i_BFu15i_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu1i");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_BFu15i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu1i, BFu9i_BFu15i_BFu1i)
//============================================================================



static void Test_BFu9i_BFu15i_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu15i_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu1ll");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_BFu15i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu1ll, BFu9i_BFu15i_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu15i_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu1s");
    static STRUCT_IF_C BFu9i_BFu15i_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu1s");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_BFu15i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu1s, BFu9i_BFu15i_BFu1s)
//============================================================================



static void Test_BFu9i_BFu15i_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu31i");
    static STRUCT_IF_C BFu9i_BFu15i_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu9i_BFu15i_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu15i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu31i, BFu9i_BFu15i_BFu31i)
//============================================================================



static void Test_BFu9i_BFu15i_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu15i_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu9i_BFu15i_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu15i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu31ll, BFu9i_BFu15i_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu15i_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu32i");
    static STRUCT_IF_C BFu9i_BFu15i_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu9i_BFu15i_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu15i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu32i, BFu9i_BFu15i_BFu32i)
//============================================================================



static void Test_BFu9i_BFu15i_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu15i_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu9i_BFu15i_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu15i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu32ll, BFu9i_BFu15i_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu15i_BFu33()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu33");
    static STRUCT_IF_C BFu9i_BFu15i_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu15i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, 1, "BFu9i_BFu15i_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, hide_ull(1LL<<32), "BFu9i_BFu15i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu33, BFu9i_BFu15i_BFu33)
//============================================================================



static void Test_BFu9i_BFu15i_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu7c");
    static STRUCT_IF_C BFu9i_BFu15i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_BFu15i_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu15i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu7c, BFu9i_BFu15i_BFu7c)
//============================================================================



static void Test_BFu9i_BFu15i_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu7i");
    static STRUCT_IF_C BFu9i_BFu15i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_BFu15i_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu15i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu7i, BFu9i_BFu15i_BFu7i)
//============================================================================



static void Test_BFu9i_BFu15i_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu15i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_BFu15i_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu15i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu7ll, BFu9i_BFu15i_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu15i_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu7s");
    static STRUCT_IF_C BFu9i_BFu15i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_BFu15i_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu15i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu7s, BFu9i_BFu15i_BFu7s)
//============================================================================



static void Test_BFu9i_BFu15i_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu8c");
    static STRUCT_IF_C BFu9i_BFu15i_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_BFu15i_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu15i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu8c, BFu9i_BFu15i_BFu8c)
//============================================================================



static void Test_BFu9i_BFu15i_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu8i");
    static STRUCT_IF_C BFu9i_BFu15i_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_BFu15i_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu15i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu8i, BFu9i_BFu15i_BFu8i)
//============================================================================



static void Test_BFu9i_BFu15i_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu15i_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_BFu15i_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu15i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu8ll, BFu9i_BFu15i_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu15i_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu8s");
    static STRUCT_IF_C BFu9i_BFu15i_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_BFu15i_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu15i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu8s, BFu9i_BFu15i_BFu8s)
//============================================================================



static void Test_BFu9i_BFu15i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu9i");
    static STRUCT_IF_C BFu9i_BFu15i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9i_BFu15i_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu9i, BFu9i_BFu15i_BFu9i)
//============================================================================



static void Test_BFu9i_BFu15i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu15i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9i_BFu15i_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu9ll, BFu9i_BFu15i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu15i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu15i_BFu9s");
    static STRUCT_IF_C BFu9i_BFu15i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9i_BFu15i_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_BFu9s, BFu9i_BFu15i_BFu9s)
//============================================================================



static void Test_BFu9i_BFu15i_C()
{
  {
    init_simple_test("BFu9i_BFu15i_C");
    static STRUCT_IF_C BFu9i_BFu15i_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_C");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_C");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_C");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_C, BFu9i_BFu15i_C)
//============================================================================



static void Test_BFu9i_BFu15i_D()
{
  {
    init_simple_test("BFu9i_BFu15i_D");
    static STRUCT_IF_C BFu9i_BFu15i_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu15i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_D");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_D");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_D");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_D, BFu9i_BFu15i_D)
//============================================================================



static void Test_BFu9i_BFu15i_F()
{
  {
    init_simple_test("BFu9i_BFu15i_F");
    static STRUCT_IF_C BFu9i_BFu15i_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_F");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_F");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_F");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_F, BFu9i_BFu15i_F)
//============================================================================



static void Test_BFu9i_BFu15i_I()
{
  {
    init_simple_test("BFu9i_BFu15i_I");
    static STRUCT_IF_C BFu9i_BFu15i_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_I");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_I");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_I");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_I, BFu9i_BFu15i_I)
//============================================================================



static void Test_BFu9i_BFu15i_Ip()
{
  {
    init_simple_test("BFu9i_BFu15i_Ip");
    static STRUCT_IF_C BFu9i_BFu15i_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu15i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_Ip");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_Ip, BFu9i_BFu15i_Ip)
//============================================================================



static void Test_BFu9i_BFu15i_L()
{
  {
    init_simple_test("BFu9i_BFu15i_L");
    static STRUCT_IF_C BFu9i_BFu15i_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu15i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_L");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_L");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_L");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_L, BFu9i_BFu15i_L)
//============================================================================



static void Test_BFu9i_BFu15i_S()
{
  {
    init_simple_test("BFu9i_BFu15i_S");
    static STRUCT_IF_C BFu9i_BFu15i_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_S");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_S");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_S");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_S, BFu9i_BFu15i_S)
//============================================================================



static void Test_BFu9i_BFu15i_Uc()
{
  {
    init_simple_test("BFu9i_BFu15i_Uc");
    static STRUCT_IF_C BFu9i_BFu15i_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_Uc");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_Uc, BFu9i_BFu15i_Uc)
//============================================================================



static void Test_BFu9i_BFu15i_Ui()
{
  {
    init_simple_test("BFu9i_BFu15i_Ui");
    static STRUCT_IF_C BFu9i_BFu15i_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_Ui");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_Ui, BFu9i_BFu15i_Ui)
//============================================================================



static void Test_BFu9i_BFu15i_Ul()
{
  {
    init_simple_test("BFu9i_BFu15i_Ul");
    static STRUCT_IF_C BFu9i_BFu15i_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu15i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_Ul");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_Ul, BFu9i_BFu15i_Ul)
//============================================================================



static void Test_BFu9i_BFu15i_Us()
{
  {
    init_simple_test("BFu9i_BFu15i_Us");
    static STRUCT_IF_C BFu9i_BFu15i_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_Us");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_Us");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_Us");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_Us, BFu9i_BFu15i_Us)
//============================================================================



static void Test_BFu9i_BFu15i_Vp()
{
  {
    init_simple_test("BFu9i_BFu15i_Vp");
    static STRUCT_IF_C BFu9i_BFu15i_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu15i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15i_Vp");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15i_Vp, BFu9i_BFu15i_Vp)
//============================================================================



static void Test_BFu9i_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu15ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll, BFu9i_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu15i");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9i_BFu15ll_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu15i, BFu9i_BFu15ll_BFu15i)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9i_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu15ll, BFu9i_BFu15ll_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu15s");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9i_BFu15ll_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu15s, BFu9i_BFu15ll_BFu15s)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu16i");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9i_BFu15ll_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu15ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu16i, BFu9i_BFu15ll_BFu16i)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9i_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu15ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu16ll, BFu9i_BFu15ll_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu16s");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9i_BFu15ll_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu15ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu16s, BFu9i_BFu15ll_BFu16s)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu17i");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu15ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu17i");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu9i_BFu15ll_BFu17i");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu15ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu17i, BFu9i_BFu15ll_BFu17i)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu15ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu9i_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu15ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu17ll, BFu9i_BFu15ll_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu1c");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu1c");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_BFu15ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu1c, BFu9i_BFu15ll_BFu1c)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu1i");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu1i");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_BFu15ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu1i, BFu9i_BFu15ll_BFu1i)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_BFu15ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu1ll, BFu9i_BFu15ll_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu1s");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu1s");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_BFu15ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu1s, BFu9i_BFu15ll_BFu1s)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu31i");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu9i_BFu15ll_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu15ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu31i, BFu9i_BFu15ll_BFu31i)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu9i_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu15ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu31ll, BFu9i_BFu15ll_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu32i");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu9i_BFu15ll_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu15ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu32i, BFu9i_BFu15ll_BFu32i)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu9i_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu15ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu32ll, BFu9i_BFu15ll_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu33()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu33");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu15ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, 1, "BFu9i_BFu15ll_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, hide_ull(1LL<<32), "BFu9i_BFu15ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu33, BFu9i_BFu15ll_BFu33)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu7c");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_BFu15ll_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu15ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu7c, BFu9i_BFu15ll_BFu7c)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu7i");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_BFu15ll_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu15ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu7i, BFu9i_BFu15ll_BFu7i)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu15ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu7ll, BFu9i_BFu15ll_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu7s");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_BFu15ll_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu15ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu7s, BFu9i_BFu15ll_BFu7s)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu8c");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_BFu15ll_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu15ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu8c, BFu9i_BFu15ll_BFu8c)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu8i");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_BFu15ll_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu15ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu8i, BFu9i_BFu15ll_BFu8i)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu15ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu8ll, BFu9i_BFu15ll_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu8s");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_BFu15ll_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu15ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu8s, BFu9i_BFu15ll_BFu8s)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9i_BFu15ll_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu9i, BFu9i_BFu15ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9i_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu9ll, BFu9i_BFu15ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu15ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu15ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFu15ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9i_BFu15ll_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_BFu9s, BFu9i_BFu15ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFu15ll_C()
{
  {
    init_simple_test("BFu9i_BFu15ll_C");
    static STRUCT_IF_C BFu9i_BFu15ll_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_C");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_C");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_C");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_C, BFu9i_BFu15ll_C)
//============================================================================



static void Test_BFu9i_BFu15ll_D()
{
  {
    init_simple_test("BFu9i_BFu15ll_D");
    static STRUCT_IF_C BFu9i_BFu15ll_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu15ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_D");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_D");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_D");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_D, BFu9i_BFu15ll_D)
//============================================================================



static void Test_BFu9i_BFu15ll_F()
{
  {
    init_simple_test("BFu9i_BFu15ll_F");
    static STRUCT_IF_C BFu9i_BFu15ll_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_F");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_F");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_F");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_F, BFu9i_BFu15ll_F)
//============================================================================



static void Test_BFu9i_BFu15ll_I()
{
  {
    init_simple_test("BFu9i_BFu15ll_I");
    static STRUCT_IF_C BFu9i_BFu15ll_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_I");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_I");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_I");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_I, BFu9i_BFu15ll_I)
//============================================================================



static void Test_BFu9i_BFu15ll_Ip()
{
  {
    init_simple_test("BFu9i_BFu15ll_Ip");
    static STRUCT_IF_C BFu9i_BFu15ll_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu15ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_Ip");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_Ip, BFu9i_BFu15ll_Ip)
//============================================================================



static void Test_BFu9i_BFu15ll_L()
{
  {
    init_simple_test("BFu9i_BFu15ll_L");
    static STRUCT_IF_C BFu9i_BFu15ll_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu15ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_L");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_L");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_L");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_L, BFu9i_BFu15ll_L)
//============================================================================



static void Test_BFu9i_BFu15ll_S()
{
  {
    init_simple_test("BFu9i_BFu15ll_S");
    static STRUCT_IF_C BFu9i_BFu15ll_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_S");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_S");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_S");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_S, BFu9i_BFu15ll_S)
//============================================================================



static void Test_BFu9i_BFu15ll_Uc()
{
  {
    init_simple_test("BFu9i_BFu15ll_Uc");
    static STRUCT_IF_C BFu9i_BFu15ll_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_Uc");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_Uc, BFu9i_BFu15ll_Uc)
//============================================================================



static void Test_BFu9i_BFu15ll_Ui()
{
  {
    init_simple_test("BFu9i_BFu15ll_Ui");
    static STRUCT_IF_C BFu9i_BFu15ll_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_Ui");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_Ui, BFu9i_BFu15ll_Ui)
//============================================================================



static void Test_BFu9i_BFu15ll_Ul()
{
  {
    init_simple_test("BFu9i_BFu15ll_Ul");
    static STRUCT_IF_C BFu9i_BFu15ll_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu15ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_Ul");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_Ul, BFu9i_BFu15ll_Ul)
//============================================================================



static void Test_BFu9i_BFu15ll_Us()
{
  {
    init_simple_test("BFu9i_BFu15ll_Us");
    static STRUCT_IF_C BFu9i_BFu15ll_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_Us");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_Us, BFu9i_BFu15ll_Us)
//============================================================================



static void Test_BFu9i_BFu15ll_Vp()
{
  {
    init_simple_test("BFu9i_BFu15ll_Vp");
    static STRUCT_IF_C BFu9i_BFu15ll_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu15ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15ll_Vp");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15ll_Vp, BFu9i_BFu15ll_Vp)
//============================================================================



static void Test_BFu9i_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu15s");
    static STRUCT_IF_C BFu9i_BFu15s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s, BFu9i_BFu15s)
//============================================================================



static void Test_BFu9i_BFu15s_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu15i");
    static STRUCT_IF_C BFu9i_BFu15s_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9i_BFu15s_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu15i, BFu9i_BFu15s_BFu15i)
//============================================================================



static void Test_BFu9i_BFu15s_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu15s_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9i_BFu15s_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu15ll, BFu9i_BFu15s_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu15s_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu15s");
    static STRUCT_IF_C BFu9i_BFu15s_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9i_BFu15s_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu15s, BFu9i_BFu15s_BFu15s)
//============================================================================



static void Test_BFu9i_BFu15s_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu16i");
    static STRUCT_IF_C BFu9i_BFu15s_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9i_BFu15s_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu15s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu16i, BFu9i_BFu15s_BFu16i)
//============================================================================



static void Test_BFu9i_BFu15s_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu15s_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9i_BFu15s_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu15s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu16ll, BFu9i_BFu15s_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu15s_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu16s");
    static STRUCT_IF_C BFu9i_BFu15s_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9i_BFu15s_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu15s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu16s, BFu9i_BFu15s_BFu16s)
//============================================================================



static void Test_BFu9i_BFu15s_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu17i");
    static STRUCT_IF_C BFu9i_BFu15s_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu15s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu17i");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu9i_BFu15s_BFu17i");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu15s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu17i, BFu9i_BFu15s_BFu17i)
//============================================================================



static void Test_BFu9i_BFu15s_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu15s_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu15s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu17ll");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu9i_BFu15s_BFu17ll");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu15s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu17ll, BFu9i_BFu15s_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu15s_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu1c");
    static STRUCT_IF_C BFu9i_BFu15s_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu1c");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_BFu15s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu1c, BFu9i_BFu15s_BFu1c)
//============================================================================



static void Test_BFu9i_BFu15s_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu1i");
    static STRUCT_IF_C BFu9i_BFu15s_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu1i");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_BFu15s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu1i, BFu9i_BFu15s_BFu1i)
//============================================================================



static void Test_BFu9i_BFu15s_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu15s_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu1ll");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_BFu15s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu1ll, BFu9i_BFu15s_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu15s_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu1s");
    static STRUCT_IF_C BFu9i_BFu15s_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu1s");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_BFu15s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu1s, BFu9i_BFu15s_BFu1s)
//============================================================================



static void Test_BFu9i_BFu15s_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu31i");
    static STRUCT_IF_C BFu9i_BFu15s_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu9i_BFu15s_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu15s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu31i, BFu9i_BFu15s_BFu31i)
//============================================================================



static void Test_BFu9i_BFu15s_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu15s_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu9i_BFu15s_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu15s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu31ll, BFu9i_BFu15s_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu15s_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu32i");
    static STRUCT_IF_C BFu9i_BFu15s_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu9i_BFu15s_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu15s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu32i, BFu9i_BFu15s_BFu32i)
//============================================================================



static void Test_BFu9i_BFu15s_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu15s_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu9i_BFu15s_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu15s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu32ll, BFu9i_BFu15s_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu15s_BFu33()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu33");
    static STRUCT_IF_C BFu9i_BFu15s_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu15s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, 1, "BFu9i_BFu15s_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, hide_ull(1LL<<32), "BFu9i_BFu15s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu33, BFu9i_BFu15s_BFu33)
//============================================================================



static void Test_BFu9i_BFu15s_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu7c");
    static STRUCT_IF_C BFu9i_BFu15s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_BFu15s_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu15s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu7c, BFu9i_BFu15s_BFu7c)
//============================================================================



static void Test_BFu9i_BFu15s_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu7i");
    static STRUCT_IF_C BFu9i_BFu15s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_BFu15s_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu15s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu7i, BFu9i_BFu15s_BFu7i)
//============================================================================



static void Test_BFu9i_BFu15s_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu15s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_BFu15s_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu15s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu7ll, BFu9i_BFu15s_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu15s_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu7s");
    static STRUCT_IF_C BFu9i_BFu15s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_BFu15s_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu15s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu7s, BFu9i_BFu15s_BFu7s)
//============================================================================



static void Test_BFu9i_BFu15s_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu8c");
    static STRUCT_IF_C BFu9i_BFu15s_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_BFu15s_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu15s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu8c, BFu9i_BFu15s_BFu8c)
//============================================================================



static void Test_BFu9i_BFu15s_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu8i");
    static STRUCT_IF_C BFu9i_BFu15s_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_BFu15s_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu15s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu8i, BFu9i_BFu15s_BFu8i)
//============================================================================



static void Test_BFu9i_BFu15s_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu15s_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_BFu15s_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu15s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu8ll, BFu9i_BFu15s_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu15s_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu8s");
    static STRUCT_IF_C BFu9i_BFu15s_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_BFu15s_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu15s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu8s, BFu9i_BFu15s_BFu8s)
//============================================================================



static void Test_BFu9i_BFu15s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu9i");
    static STRUCT_IF_C BFu9i_BFu15s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9i_BFu15s_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu9i, BFu9i_BFu15s_BFu9i)
//============================================================================



static void Test_BFu9i_BFu15s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu15s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9i_BFu15s_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu9ll, BFu9i_BFu15s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu15s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu15s_BFu9s");
    static STRUCT_IF_C BFu9i_BFu15s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9i_BFu15s_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_BFu9s, BFu9i_BFu15s_BFu9s)
//============================================================================



static void Test_BFu9i_BFu15s_C()
{
  {
    init_simple_test("BFu9i_BFu15s_C");
    static STRUCT_IF_C BFu9i_BFu15s_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15s_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_C");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_C");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_C");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_C, BFu9i_BFu15s_C)
//============================================================================



static void Test_BFu9i_BFu15s_D()
{
  {
    init_simple_test("BFu9i_BFu15s_D");
    static STRUCT_IF_C BFu9i_BFu15s_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu15s_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_D");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_D");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_D");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_D, BFu9i_BFu15s_D)
//============================================================================



static void Test_BFu9i_BFu15s_F()
{
  {
    init_simple_test("BFu9i_BFu15s_F");
    static STRUCT_IF_C BFu9i_BFu15s_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15s_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_F");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_F");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_F");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_F, BFu9i_BFu15s_F)
//============================================================================



static void Test_BFu9i_BFu15s_I()
{
  {
    init_simple_test("BFu9i_BFu15s_I");
    static STRUCT_IF_C BFu9i_BFu15s_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15s_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_I");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_I");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_I");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_I, BFu9i_BFu15s_I)
//============================================================================



static void Test_BFu9i_BFu15s_Ip()
{
  {
    init_simple_test("BFu9i_BFu15s_Ip");
    static STRUCT_IF_C BFu9i_BFu15s_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu15s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_Ip");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_Ip");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_Ip");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_Ip, BFu9i_BFu15s_Ip)
//============================================================================



static void Test_BFu9i_BFu15s_L()
{
  {
    init_simple_test("BFu9i_BFu15s_L");
    static STRUCT_IF_C BFu9i_BFu15s_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu15s_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_L");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_L");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_L");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_L, BFu9i_BFu15s_L)
//============================================================================



static void Test_BFu9i_BFu15s_S()
{
  {
    init_simple_test("BFu9i_BFu15s_S");
    static STRUCT_IF_C BFu9i_BFu15s_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15s_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_S");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_S");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_S");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_S, BFu9i_BFu15s_S)
//============================================================================



static void Test_BFu9i_BFu15s_Uc()
{
  {
    init_simple_test("BFu9i_BFu15s_Uc");
    static STRUCT_IF_C BFu9i_BFu15s_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu15s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_Uc");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_Uc");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_Uc");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_Uc, BFu9i_BFu15s_Uc)
//============================================================================



static void Test_BFu9i_BFu15s_Ui()
{
  {
    init_simple_test("BFu9i_BFu15s_Ui");
    static STRUCT_IF_C BFu9i_BFu15s_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu15s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_Ui");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_Ui");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_Ui");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_Ui, BFu9i_BFu15s_Ui)
//============================================================================



static void Test_BFu9i_BFu15s_Ul()
{
  {
    init_simple_test("BFu9i_BFu15s_Ul");
    static STRUCT_IF_C BFu9i_BFu15s_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu15s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_Ul");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_Ul");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_Ul");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_Ul, BFu9i_BFu15s_Ul)
//============================================================================



static void Test_BFu9i_BFu15s_Us()
{
  {
    init_simple_test("BFu9i_BFu15s_Us");
    static STRUCT_IF_C BFu9i_BFu15s_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu15s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_Us");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_Us");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_Us");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_Us, BFu9i_BFu15s_Us)
//============================================================================



static void Test_BFu9i_BFu15s_Vp()
{
  {
    init_simple_test("BFu9i_BFu15s_Vp");
    static STRUCT_IF_C BFu9i_BFu15s_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu15s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu15s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu15s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu15s_Vp");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9i_BFu15s_Vp");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu15s_Vp");
    check_field_offset(lv, v3, 3, "BFu9i_BFu15s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu15s_Vp, BFu9i_BFu15s_Vp)
//============================================================================



static void Test_BFu9i_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu16i");
    static STRUCT_IF_C BFu9i_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i, BFu9i_BFu16i)
//============================================================================



static void Test_BFu9i_BFu16i_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu15i");
    static STRUCT_IF_C BFu9i_BFu16i_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu15i");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9i_BFu16i_BFu15i");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu16i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu15i, BFu9i_BFu16i_BFu15i)
//============================================================================



static void Test_BFu9i_BFu16i_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu16i_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu15ll");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9i_BFu16i_BFu15ll");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu16i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu15ll, BFu9i_BFu16i_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu16i_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu15s");
    static STRUCT_IF_C BFu9i_BFu16i_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu15s");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9i_BFu16i_BFu15s");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu16i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu15s, BFu9i_BFu16i_BFu15s)
//============================================================================



static void Test_BFu9i_BFu16i_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu16i");
    static STRUCT_IF_C BFu9i_BFu16i_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu16i");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9i_BFu16i_BFu16i");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu16i, BFu9i_BFu16i_BFu16i)
//============================================================================



static void Test_BFu9i_BFu16i_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu16i_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu16ll");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9i_BFu16i_BFu16ll");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu16ll, BFu9i_BFu16i_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu16i_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu16s");
    static STRUCT_IF_C BFu9i_BFu16i_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu16s");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9i_BFu16i_BFu16s");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu16s, BFu9i_BFu16i_BFu16s)
//============================================================================



static void Test_BFu9i_BFu16i_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu17i");
    static STRUCT_IF_C BFu9i_BFu16i_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu17i");
    set_bf_and_test(lv, v3, 3, 1, 17, 1, "BFu9i_BFu16i_BFu17i");
    set_bf_and_test(lv, v3, 3, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu16i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu17i, BFu9i_BFu16i_BFu17i)
//============================================================================



static void Test_BFu9i_BFu16i_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu16i_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu17ll");
    set_bf_and_test(lv, v3, 3, 1, 17, 1, "BFu9i_BFu16i_BFu17ll");
    set_bf_and_test(lv, v3, 3, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu16i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu17ll, BFu9i_BFu16i_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu16i_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu1c");
    static STRUCT_IF_C BFu9i_BFu16i_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu1c");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9i_BFu16i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu1c, BFu9i_BFu16i_BFu1c)
//============================================================================



static void Test_BFu9i_BFu16i_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu1i");
    static STRUCT_IF_C BFu9i_BFu16i_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu1i");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9i_BFu16i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu1i, BFu9i_BFu16i_BFu1i)
//============================================================================



static void Test_BFu9i_BFu16i_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu16i_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu1ll");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9i_BFu16i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu1ll, BFu9i_BFu16i_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu16i_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu1s");
    static STRUCT_IF_C BFu9i_BFu16i_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu1s");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9i_BFu16i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu1s, BFu9i_BFu16i_BFu1s)
//============================================================================



static void Test_BFu9i_BFu16i_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu31i");
    static STRUCT_IF_C BFu9i_BFu16i_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu16i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu31i");
    set_bf_and_test(lv, v3, 3, 1, 31, 1, "BFu9i_BFu16i_BFu31i");
    set_bf_and_test(lv, v3, 3, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu16i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu31i, BFu9i_BFu16i_BFu31i)
//============================================================================



static void Test_BFu9i_BFu16i_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu16i_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu16i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu31ll");
    set_bf_and_test(lv, v3, 3, 1, 31, 1, "BFu9i_BFu16i_BFu31ll");
    set_bf_and_test(lv, v3, 3, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu16i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu31ll, BFu9i_BFu16i_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu16i_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu32i");
    static STRUCT_IF_C BFu9i_BFu16i_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu32i");
    set_bf_and_test(lv, v3, 3, 1, 32, 1, "BFu9i_BFu16i_BFu32i");
    set_bf_and_test(lv, v3, 3, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu16i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu32i, BFu9i_BFu16i_BFu32i)
//============================================================================



static void Test_BFu9i_BFu16i_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu16i_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu32ll");
    set_bf_and_test(lv, v3, 3, 1, 32, 1, "BFu9i_BFu16i_BFu32ll");
    set_bf_and_test(lv, v3, 3, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu16i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu32ll, BFu9i_BFu16i_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu16i_BFu33()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu33");
    static STRUCT_IF_C BFu9i_BFu16i_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu33");
    set_bf_and_test(lv, v3, 3, 1, 33, 1, "BFu9i_BFu16i_BFu33");
    set_bf_and_test(lv, v3, 3, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu16i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu33, BFu9i_BFu16i_BFu33)
//============================================================================



static void Test_BFu9i_BFu16i_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu7c");
    static STRUCT_IF_C BFu9i_BFu16i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu7c");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9i_BFu16i_BFu7c");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu16i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu7c, BFu9i_BFu16i_BFu7c)
//============================================================================



static void Test_BFu9i_BFu16i_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu7i");
    static STRUCT_IF_C BFu9i_BFu16i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu7i");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9i_BFu16i_BFu7i");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu16i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu7i, BFu9i_BFu16i_BFu7i)
//============================================================================



static void Test_BFu9i_BFu16i_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu16i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu7ll");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9i_BFu16i_BFu7ll");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu16i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu7ll, BFu9i_BFu16i_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu16i_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu7s");
    static STRUCT_IF_C BFu9i_BFu16i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu7s");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9i_BFu16i_BFu7s");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu16i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu7s, BFu9i_BFu16i_BFu7s)
//============================================================================



static void Test_BFu9i_BFu16i_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu8c");
    static STRUCT_IF_C BFu9i_BFu16i_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu8c");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9i_BFu16i_BFu8c");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu16i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu8c, BFu9i_BFu16i_BFu8c)
//============================================================================



static void Test_BFu9i_BFu16i_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu8i");
    static STRUCT_IF_C BFu9i_BFu16i_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu8i");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9i_BFu16i_BFu8i");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu16i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu8i, BFu9i_BFu16i_BFu8i)
//============================================================================



static void Test_BFu9i_BFu16i_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu16i_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu8ll");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9i_BFu16i_BFu8ll");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu16i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu8ll, BFu9i_BFu16i_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu16i_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu8s");
    static STRUCT_IF_C BFu9i_BFu16i_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu8s");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9i_BFu16i_BFu8s");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu16i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu8s, BFu9i_BFu16i_BFu8s)
//============================================================================



static void Test_BFu9i_BFu16i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu9i");
    static STRUCT_IF_C BFu9i_BFu16i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu9i");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9i_BFu16i_BFu9i");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu9i, BFu9i_BFu16i_BFu9i)
//============================================================================



static void Test_BFu9i_BFu16i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu16i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu9ll");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9i_BFu16i_BFu9ll");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu9ll, BFu9i_BFu16i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu16i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu16i_BFu9s");
    static STRUCT_IF_C BFu9i_BFu16i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_BFu9s");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9i_BFu16i_BFu9s");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_BFu9s, BFu9i_BFu16i_BFu9s)
//============================================================================



static void Test_BFu9i_BFu16i_C()
{
  {
    init_simple_test("BFu9i_BFu16i_C");
    static STRUCT_IF_C BFu9i_BFu16i_C lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_C");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_C");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_C");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_C, BFu9i_BFu16i_C)
//============================================================================



static void Test_BFu9i_BFu16i_D()
{
  {
    init_simple_test("BFu9i_BFu16i_D");
    static STRUCT_IF_C BFu9i_BFu16i_D lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_BFu16i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_D");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_D");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_D");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_D, BFu9i_BFu16i_D)
//============================================================================



static void Test_BFu9i_BFu16i_F()
{
  {
    init_simple_test("BFu9i_BFu16i_F");
    static STRUCT_IF_C BFu9i_BFu16i_F lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_F");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_F");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_F");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_F, BFu9i_BFu16i_F)
//============================================================================



static void Test_BFu9i_BFu16i_I()
{
  {
    init_simple_test("BFu9i_BFu16i_I");
    static STRUCT_IF_C BFu9i_BFu16i_I lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_I");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_I");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_I");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_I, BFu9i_BFu16i_I)
//============================================================================



static void Test_BFu9i_BFu16i_Ip()
{
  {
    init_simple_test("BFu9i_BFu16i_Ip");
    static STRUCT_IF_C BFu9i_BFu16i_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_BFu16i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_Ip");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_Ip, BFu9i_BFu16i_Ip)
//============================================================================



static void Test_BFu9i_BFu16i_L()
{
  {
    init_simple_test("BFu9i_BFu16i_L");
    static STRUCT_IF_C BFu9i_BFu16i_L lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_BFu16i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_L");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_L");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_L");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_L, BFu9i_BFu16i_L)
//============================================================================



static void Test_BFu9i_BFu16i_S()
{
  {
    init_simple_test("BFu9i_BFu16i_S");
    static STRUCT_IF_C BFu9i_BFu16i_S lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_S");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_S");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_S");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_S, BFu9i_BFu16i_S)
//============================================================================



static void Test_BFu9i_BFu16i_Uc()
{
  {
    init_simple_test("BFu9i_BFu16i_Uc");
    static STRUCT_IF_C BFu9i_BFu16i_Uc lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_Uc");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_Uc, BFu9i_BFu16i_Uc)
//============================================================================



static void Test_BFu9i_BFu16i_Ui()
{
  {
    init_simple_test("BFu9i_BFu16i_Ui");
    static STRUCT_IF_C BFu9i_BFu16i_Ui lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_Ui");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_Ui, BFu9i_BFu16i_Ui)
//============================================================================



static void Test_BFu9i_BFu16i_Ul()
{
  {
    init_simple_test("BFu9i_BFu16i_Ul");
    static STRUCT_IF_C BFu9i_BFu16i_Ul lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_BFu16i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_Ul");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_Ul, BFu9i_BFu16i_Ul)
//============================================================================



static void Test_BFu9i_BFu16i_Us()
{
  {
    init_simple_test("BFu9i_BFu16i_Us");
    static STRUCT_IF_C BFu9i_BFu16i_Us lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_Us");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_Us");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_Us");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_Us, BFu9i_BFu16i_Us)
//============================================================================



static void Test_BFu9i_BFu16i_Vp()
{
  {
    init_simple_test("BFu9i_BFu16i_Vp");
    static STRUCT_IF_C BFu9i_BFu16i_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_BFu16i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16i_Vp");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16i_Vp, BFu9i_BFu16i_Vp)
//============================================================================



static void Test_BFu9i_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll, BFu9i_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu15i");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu15i");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9i_BFu16ll_BFu15i");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu16ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu15i, BFu9i_BFu16ll_BFu15i)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9i_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu16ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu15ll, BFu9i_BFu16ll_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu15s");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu15s");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9i_BFu16ll_BFu15s");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu16ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu15s, BFu9i_BFu16ll_BFu15s)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu16i");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu16i");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9i_BFu16ll_BFu16i");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu16i, BFu9i_BFu16ll_BFu16i)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9i_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu16ll, BFu9i_BFu16ll_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu16s");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu16s");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9i_BFu16ll_BFu16s");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu16s, BFu9i_BFu16ll_BFu16s)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu17i");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu17i");
    set_bf_and_test(lv, v3, 3, 1, 17, 1, "BFu9i_BFu16ll_BFu17i");
    set_bf_and_test(lv, v3, 3, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu16ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu17i, BFu9i_BFu16ll_BFu17i)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v3, 3, 1, 17, 1, "BFu9i_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v3, 3, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu16ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu17ll, BFu9i_BFu16ll_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu1c");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu1c");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9i_BFu16ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu1c, BFu9i_BFu16ll_BFu1c)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu1i");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu1i");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9i_BFu16ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu1i, BFu9i_BFu16ll_BFu1i)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9i_BFu16ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu1ll, BFu9i_BFu16ll_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu1s");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu1s");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9i_BFu16ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu1s, BFu9i_BFu16ll_BFu1s)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu31i");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu16ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu31i");
    set_bf_and_test(lv, v3, 3, 1, 31, 1, "BFu9i_BFu16ll_BFu31i");
    set_bf_and_test(lv, v3, 3, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu16ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu31i, BFu9i_BFu16ll_BFu31i)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu16ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v3, 3, 1, 31, 1, "BFu9i_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v3, 3, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu16ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu31ll, BFu9i_BFu16ll_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu32i");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu32i");
    set_bf_and_test(lv, v3, 3, 1, 32, 1, "BFu9i_BFu16ll_BFu32i");
    set_bf_and_test(lv, v3, 3, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu16ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu32i, BFu9i_BFu16ll_BFu32i)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v3, 3, 1, 32, 1, "BFu9i_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v3, 3, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu16ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu32ll, BFu9i_BFu16ll_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu33()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu33");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu33");
    set_bf_and_test(lv, v3, 3, 1, 33, 1, "BFu9i_BFu16ll_BFu33");
    set_bf_and_test(lv, v3, 3, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu16ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu33, BFu9i_BFu16ll_BFu33)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu7c");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu7c");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9i_BFu16ll_BFu7c");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu16ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu7c, BFu9i_BFu16ll_BFu7c)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu7i");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu7i");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9i_BFu16ll_BFu7i");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu16ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu7i, BFu9i_BFu16ll_BFu7i)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9i_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu16ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu7ll, BFu9i_BFu16ll_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu7s");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu7s");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9i_BFu16ll_BFu7s");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu16ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu7s, BFu9i_BFu16ll_BFu7s)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu8c");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu8c");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9i_BFu16ll_BFu8c");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu16ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu8c, BFu9i_BFu16ll_BFu8c)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu8i");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu8i");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9i_BFu16ll_BFu8i");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu16ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu8i, BFu9i_BFu16ll_BFu8i)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9i_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu16ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu8ll, BFu9i_BFu16ll_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu8s");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu8s");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9i_BFu16ll_BFu8s");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu16ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu8s, BFu9i_BFu16ll_BFu8s)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu9i");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9i_BFu16ll_BFu9i");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu9i, BFu9i_BFu16ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9i_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu9ll, BFu9i_BFu16ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu16ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu16ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFu16ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_BFu9s");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9i_BFu16ll_BFu9s");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_BFu9s, BFu9i_BFu16ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFu16ll_C()
{
  {
    init_simple_test("BFu9i_BFu16ll_C");
    static STRUCT_IF_C BFu9i_BFu16ll_C lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_C");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_C");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_C");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_C, BFu9i_BFu16ll_C)
//============================================================================



static void Test_BFu9i_BFu16ll_D()
{
  {
    init_simple_test("BFu9i_BFu16ll_D");
    static STRUCT_IF_C BFu9i_BFu16ll_D lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_BFu16ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_D");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_D");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_D");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_D, BFu9i_BFu16ll_D)
//============================================================================



static void Test_BFu9i_BFu16ll_F()
{
  {
    init_simple_test("BFu9i_BFu16ll_F");
    static STRUCT_IF_C BFu9i_BFu16ll_F lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_F");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_F");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_F");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_F, BFu9i_BFu16ll_F)
//============================================================================



static void Test_BFu9i_BFu16ll_I()
{
  {
    init_simple_test("BFu9i_BFu16ll_I");
    static STRUCT_IF_C BFu9i_BFu16ll_I lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_I");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_I");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_I");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_I, BFu9i_BFu16ll_I)
//============================================================================



static void Test_BFu9i_BFu16ll_Ip()
{
  {
    init_simple_test("BFu9i_BFu16ll_Ip");
    static STRUCT_IF_C BFu9i_BFu16ll_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_BFu16ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_Ip");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_Ip, BFu9i_BFu16ll_Ip)
//============================================================================



static void Test_BFu9i_BFu16ll_L()
{
  {
    init_simple_test("BFu9i_BFu16ll_L");
    static STRUCT_IF_C BFu9i_BFu16ll_L lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_BFu16ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_L");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_L");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_L");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_L, BFu9i_BFu16ll_L)
//============================================================================



static void Test_BFu9i_BFu16ll_S()
{
  {
    init_simple_test("BFu9i_BFu16ll_S");
    static STRUCT_IF_C BFu9i_BFu16ll_S lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_S");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_S");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_S");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_S, BFu9i_BFu16ll_S)
//============================================================================



static void Test_BFu9i_BFu16ll_Uc()
{
  {
    init_simple_test("BFu9i_BFu16ll_Uc");
    static STRUCT_IF_C BFu9i_BFu16ll_Uc lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_Uc");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_Uc, BFu9i_BFu16ll_Uc)
//============================================================================



static void Test_BFu9i_BFu16ll_Ui()
{
  {
    init_simple_test("BFu9i_BFu16ll_Ui");
    static STRUCT_IF_C BFu9i_BFu16ll_Ui lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_Ui");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_Ui, BFu9i_BFu16ll_Ui)
//============================================================================



static void Test_BFu9i_BFu16ll_Ul()
{
  {
    init_simple_test("BFu9i_BFu16ll_Ul");
    static STRUCT_IF_C BFu9i_BFu16ll_Ul lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_BFu16ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_Ul");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_Ul, BFu9i_BFu16ll_Ul)
//============================================================================



static void Test_BFu9i_BFu16ll_Us()
{
  {
    init_simple_test("BFu9i_BFu16ll_Us");
    static STRUCT_IF_C BFu9i_BFu16ll_Us lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_Us");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_Us, BFu9i_BFu16ll_Us)
//============================================================================



static void Test_BFu9i_BFu16ll_Vp()
{
  {
    init_simple_test("BFu9i_BFu16ll_Vp");
    static STRUCT_IF_C BFu9i_BFu16ll_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_BFu16ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16ll_Vp");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16ll_Vp, BFu9i_BFu16ll_Vp)
//============================================================================



static void Test_BFu9i_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu16s");
    static STRUCT_IF_C BFu9i_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s, BFu9i_BFu16s)
//============================================================================



static void Test_BFu9i_BFu16s_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu15i");
    static STRUCT_IF_C BFu9i_BFu16s_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu15i");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9i_BFu16s_BFu15i");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu16s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu15i, BFu9i_BFu16s_BFu15i)
//============================================================================



static void Test_BFu9i_BFu16s_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu16s_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu15ll");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9i_BFu16s_BFu15ll");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu16s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu15ll, BFu9i_BFu16s_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu16s_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu15s");
    static STRUCT_IF_C BFu9i_BFu16s_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu15s");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9i_BFu16s_BFu15s");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu16s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu15s, BFu9i_BFu16s_BFu15s)
//============================================================================



static void Test_BFu9i_BFu16s_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu16i");
    static STRUCT_IF_C BFu9i_BFu16s_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu16i");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9i_BFu16s_BFu16i");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu16i, BFu9i_BFu16s_BFu16i)
//============================================================================



static void Test_BFu9i_BFu16s_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu16s_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu16ll");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9i_BFu16s_BFu16ll");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu16ll, BFu9i_BFu16s_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu16s_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu16s");
    static STRUCT_IF_C BFu9i_BFu16s_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu16s");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9i_BFu16s_BFu16s");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu16s, BFu9i_BFu16s_BFu16s)
//============================================================================



static void Test_BFu9i_BFu16s_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu17i");
    static STRUCT_IF_C BFu9i_BFu16s_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu17i");
    set_bf_and_test(lv, v3, 3, 1, 17, 1, "BFu9i_BFu16s_BFu17i");
    set_bf_and_test(lv, v3, 3, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu16s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu17i, BFu9i_BFu16s_BFu17i)
//============================================================================



static void Test_BFu9i_BFu16s_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu16s_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu17ll");
    set_bf_and_test(lv, v3, 3, 1, 17, 1, "BFu9i_BFu16s_BFu17ll");
    set_bf_and_test(lv, v3, 3, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu16s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu17ll, BFu9i_BFu16s_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu16s_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu1c");
    static STRUCT_IF_C BFu9i_BFu16s_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu1c");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9i_BFu16s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu1c, BFu9i_BFu16s_BFu1c)
//============================================================================



static void Test_BFu9i_BFu16s_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu1i");
    static STRUCT_IF_C BFu9i_BFu16s_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu1i");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9i_BFu16s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu1i, BFu9i_BFu16s_BFu1i)
//============================================================================



static void Test_BFu9i_BFu16s_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu16s_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu1ll");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9i_BFu16s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu1ll, BFu9i_BFu16s_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu16s_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu1s");
    static STRUCT_IF_C BFu9i_BFu16s_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu1s");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9i_BFu16s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu1s, BFu9i_BFu16s_BFu1s)
//============================================================================



static void Test_BFu9i_BFu16s_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu31i");
    static STRUCT_IF_C BFu9i_BFu16s_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu16s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu31i");
    set_bf_and_test(lv, v3, 3, 1, 31, 1, "BFu9i_BFu16s_BFu31i");
    set_bf_and_test(lv, v3, 3, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu16s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu31i, BFu9i_BFu16s_BFu31i)
//============================================================================



static void Test_BFu9i_BFu16s_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu16s_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu16s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu31ll");
    set_bf_and_test(lv, v3, 3, 1, 31, 1, "BFu9i_BFu16s_BFu31ll");
    set_bf_and_test(lv, v3, 3, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu16s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu31ll, BFu9i_BFu16s_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu16s_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu32i");
    static STRUCT_IF_C BFu9i_BFu16s_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu32i");
    set_bf_and_test(lv, v3, 3, 1, 32, 1, "BFu9i_BFu16s_BFu32i");
    set_bf_and_test(lv, v3, 3, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu16s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu32i, BFu9i_BFu16s_BFu32i)
//============================================================================



static void Test_BFu9i_BFu16s_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu16s_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu32ll");
    set_bf_and_test(lv, v3, 3, 1, 32, 1, "BFu9i_BFu16s_BFu32ll");
    set_bf_and_test(lv, v3, 3, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu16s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu32ll, BFu9i_BFu16s_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu16s_BFu33()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu33");
    static STRUCT_IF_C BFu9i_BFu16s_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu33");
    set_bf_and_test(lv, v3, 3, 1, 33, 1, "BFu9i_BFu16s_BFu33");
    set_bf_and_test(lv, v3, 3, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu16s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu33, BFu9i_BFu16s_BFu33)
//============================================================================



static void Test_BFu9i_BFu16s_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu7c");
    static STRUCT_IF_C BFu9i_BFu16s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu7c");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9i_BFu16s_BFu7c");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu16s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu7c, BFu9i_BFu16s_BFu7c)
//============================================================================



static void Test_BFu9i_BFu16s_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu7i");
    static STRUCT_IF_C BFu9i_BFu16s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu7i");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9i_BFu16s_BFu7i");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu16s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu7i, BFu9i_BFu16s_BFu7i)
//============================================================================



static void Test_BFu9i_BFu16s_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu16s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu7ll");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9i_BFu16s_BFu7ll");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu16s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu7ll, BFu9i_BFu16s_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu16s_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu7s");
    static STRUCT_IF_C BFu9i_BFu16s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu16s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu7s");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9i_BFu16s_BFu7s");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu16s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu7s, BFu9i_BFu16s_BFu7s)
//============================================================================



static void Test_BFu9i_BFu16s_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu8c");
    static STRUCT_IF_C BFu9i_BFu16s_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu8c");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9i_BFu16s_BFu8c");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu16s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu8c, BFu9i_BFu16s_BFu8c)
//============================================================================



static void Test_BFu9i_BFu16s_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu8i");
    static STRUCT_IF_C BFu9i_BFu16s_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu8i");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9i_BFu16s_BFu8i");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu16s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu8i, BFu9i_BFu16s_BFu8i)
//============================================================================



static void Test_BFu9i_BFu16s_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu16s_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu8ll");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9i_BFu16s_BFu8ll");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu16s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu8ll, BFu9i_BFu16s_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu16s_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu8s");
    static STRUCT_IF_C BFu9i_BFu16s_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu8s");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9i_BFu16s_BFu8s");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu16s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu8s, BFu9i_BFu16s_BFu8s)
//============================================================================



static void Test_BFu9i_BFu16s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu9i");
    static STRUCT_IF_C BFu9i_BFu16s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu9i");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9i_BFu16s_BFu9i");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu9i, BFu9i_BFu16s_BFu9i)
//============================================================================



static void Test_BFu9i_BFu16s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu16s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu9ll");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9i_BFu16s_BFu9ll");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu9ll, BFu9i_BFu16s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu16s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu16s_BFu9s");
    static STRUCT_IF_C BFu9i_BFu16s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_BFu9s");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9i_BFu16s_BFu9s");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_BFu9s, BFu9i_BFu16s_BFu9s)
//============================================================================



static void Test_BFu9i_BFu16s_C()
{
  {
    init_simple_test("BFu9i_BFu16s_C");
    static STRUCT_IF_C BFu9i_BFu16s_C lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16s_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_C");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_C");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_C");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_C, BFu9i_BFu16s_C)
//============================================================================



static void Test_BFu9i_BFu16s_D()
{
  {
    init_simple_test("BFu9i_BFu16s_D");
    static STRUCT_IF_C BFu9i_BFu16s_D lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_BFu16s_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_D");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_D");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_D");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_D, BFu9i_BFu16s_D)
//============================================================================



static void Test_BFu9i_BFu16s_F()
{
  {
    init_simple_test("BFu9i_BFu16s_F");
    static STRUCT_IF_C BFu9i_BFu16s_F lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16s_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_F");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_F");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_F");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_F, BFu9i_BFu16s_F)
//============================================================================



static void Test_BFu9i_BFu16s_I()
{
  {
    init_simple_test("BFu9i_BFu16s_I");
    static STRUCT_IF_C BFu9i_BFu16s_I lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16s_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_I");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_I");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_I");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_I, BFu9i_BFu16s_I)
//============================================================================



static void Test_BFu9i_BFu16s_Ip()
{
  {
    init_simple_test("BFu9i_BFu16s_Ip");
    static STRUCT_IF_C BFu9i_BFu16s_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_BFu16s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_Ip");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_Ip");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_Ip");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_Ip, BFu9i_BFu16s_Ip)
//============================================================================



static void Test_BFu9i_BFu16s_L()
{
  {
    init_simple_test("BFu9i_BFu16s_L");
    static STRUCT_IF_C BFu9i_BFu16s_L lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_BFu16s_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_L");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_L");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_L");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_L, BFu9i_BFu16s_L)
//============================================================================



static void Test_BFu9i_BFu16s_S()
{
  {
    init_simple_test("BFu9i_BFu16s_S");
    static STRUCT_IF_C BFu9i_BFu16s_S lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16s_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_S");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_S");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_S");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_S, BFu9i_BFu16s_S)
//============================================================================



static void Test_BFu9i_BFu16s_Uc()
{
  {
    init_simple_test("BFu9i_BFu16s_Uc");
    static STRUCT_IF_C BFu9i_BFu16s_Uc lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu16s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_Uc");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_Uc");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_Uc");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_Uc, BFu9i_BFu16s_Uc)
//============================================================================



static void Test_BFu9i_BFu16s_Ui()
{
  {
    init_simple_test("BFu9i_BFu16s_Ui");
    static STRUCT_IF_C BFu9i_BFu16s_Ui lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu16s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_Ui");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_Ui");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_Ui");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_Ui, BFu9i_BFu16s_Ui)
//============================================================================



static void Test_BFu9i_BFu16s_Ul()
{
  {
    init_simple_test("BFu9i_BFu16s_Ul");
    static STRUCT_IF_C BFu9i_BFu16s_Ul lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_BFu16s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_Ul");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_Ul");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_Ul");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_Ul, BFu9i_BFu16s_Ul)
//============================================================================



static void Test_BFu9i_BFu16s_Us()
{
  {
    init_simple_test("BFu9i_BFu16s_Us");
    static STRUCT_IF_C BFu9i_BFu16s_Us lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu16s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_Us");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_Us");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_Us");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_Us, BFu9i_BFu16s_Us)
//============================================================================



static void Test_BFu9i_BFu16s_Vp()
{
  {
    init_simple_test("BFu9i_BFu16s_Vp");
    static STRUCT_IF_C BFu9i_BFu16s_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_BFu16s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu16s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu16s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu16s_Vp");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9i_BFu16s_Vp");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu16s_Vp");
    check_field_offset(lv, v3, 4, "BFu9i_BFu16s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu16s_Vp, BFu9i_BFu16s_Vp)
//============================================================================



static void Test_BFu9i_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu17i");
    static STRUCT_IF_C BFu9i_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i, BFu9i_BFu17i)
//============================================================================



static void Test_BFu9i_BFu17i_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu15i");
    static STRUCT_IF_C BFu9i_BFu17i_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu15i");
    set_bf_and_test(lv, v3, 3, 2, 15, 1, "BFu9i_BFu17i_BFu15i");
    set_bf_and_test(lv, v3, 3, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu17i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu15i, BFu9i_BFu17i_BFu15i)
//============================================================================



static void Test_BFu9i_BFu17i_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu17i_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu15ll");
    set_bf_and_test(lv, v3, 3, 2, 15, 1, "BFu9i_BFu17i_BFu15ll");
    set_bf_and_test(lv, v3, 3, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu17i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu15ll, BFu9i_BFu17i_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu17i_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu15s");
    static STRUCT_IF_C BFu9i_BFu17i_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu15s");
    set_bf_and_test(lv, v3, 3, 2, 15, 1, "BFu9i_BFu17i_BFu15s");
    set_bf_and_test(lv, v3, 3, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu17i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu15s, BFu9i_BFu17i_BFu15s)
//============================================================================



static void Test_BFu9i_BFu17i_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu16i");
    static STRUCT_IF_C BFu9i_BFu17i_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu16i");
    set_bf_and_test(lv, v3, 3, 2, 16, 1, "BFu9i_BFu17i_BFu16i");
    set_bf_and_test(lv, v3, 3, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu17i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu16i, BFu9i_BFu17i_BFu16i)
//============================================================================



static void Test_BFu9i_BFu17i_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu17i_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu16ll");
    set_bf_and_test(lv, v3, 3, 2, 16, 1, "BFu9i_BFu17i_BFu16ll");
    set_bf_and_test(lv, v3, 3, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu17i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu16ll, BFu9i_BFu17i_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu17i_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu16s");
    static STRUCT_IF_C BFu9i_BFu17i_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu16s");
    set_bf_and_test(lv, v3, 3, 2, 16, 1, "BFu9i_BFu17i_BFu16s");
    set_bf_and_test(lv, v3, 3, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu17i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu16s, BFu9i_BFu17i_BFu16s)
//============================================================================



static void Test_BFu9i_BFu17i_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu17i");
    static STRUCT_IF_C BFu9i_BFu17i_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu17i");
    set_bf_and_test(lv, v3, 3, 2, 17, 1, "BFu9i_BFu17i_BFu17i");
    set_bf_and_test(lv, v3, 3, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu17i, BFu9i_BFu17i_BFu17i)
//============================================================================



static void Test_BFu9i_BFu17i_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu17i_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu17ll");
    set_bf_and_test(lv, v3, 3, 2, 17, 1, "BFu9i_BFu17i_BFu17ll");
    set_bf_and_test(lv, v3, 3, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu17ll, BFu9i_BFu17i_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu17i_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu1c");
    static STRUCT_IF_C BFu9i_BFu17i_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu17i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu1c");
    set_bf_and_test(lv, v3, 3, 2, 1, 1, "BFu9i_BFu17i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu1c, BFu9i_BFu17i_BFu1c)
//============================================================================



static void Test_BFu9i_BFu17i_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu1i");
    static STRUCT_IF_C BFu9i_BFu17i_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu17i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu1i");
    set_bf_and_test(lv, v3, 3, 2, 1, 1, "BFu9i_BFu17i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu1i, BFu9i_BFu17i_BFu1i)
//============================================================================



static void Test_BFu9i_BFu17i_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu17i_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu17i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu1ll");
    set_bf_and_test(lv, v3, 3, 2, 1, 1, "BFu9i_BFu17i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu1ll, BFu9i_BFu17i_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu17i_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu1s");
    static STRUCT_IF_C BFu9i_BFu17i_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu17i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu1s");
    set_bf_and_test(lv, v3, 3, 2, 1, 1, "BFu9i_BFu17i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu1s, BFu9i_BFu17i_BFu1s)
//============================================================================



static void Test_BFu9i_BFu17i_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu31i");
    static STRUCT_IF_C BFu9i_BFu17i_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu17i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu31i");
    set_bf_and_test(lv, v3, 3, 2, 31, 1, "BFu9i_BFu17i_BFu31i");
    set_bf_and_test(lv, v3, 3, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu17i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu31i, BFu9i_BFu17i_BFu31i)
//============================================================================



static void Test_BFu9i_BFu17i_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu17i_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu17i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu31ll");
    set_bf_and_test(lv, v3, 3, 2, 31, 1, "BFu9i_BFu17i_BFu31ll");
    set_bf_and_test(lv, v3, 3, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu17i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu31ll, BFu9i_BFu17i_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu17i_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu32i");
    static STRUCT_IF_C BFu9i_BFu17i_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu17i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu32i");
    set_bf_and_test(lv, v3, 3, 2, 32, 1, "BFu9i_BFu17i_BFu32i");
    set_bf_and_test(lv, v3, 3, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu17i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu32i, BFu9i_BFu17i_BFu32i)
//============================================================================



static void Test_BFu9i_BFu17i_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu17i_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu17i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu32ll");
    set_bf_and_test(lv, v3, 3, 2, 32, 1, "BFu9i_BFu17i_BFu32ll");
    set_bf_and_test(lv, v3, 3, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu17i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu32ll, BFu9i_BFu17i_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu17i_BFu33()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu33");
    static STRUCT_IF_C BFu9i_BFu17i_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu17i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu33");
    set_bf_and_test(lv, v3, 3, 2, 33, 1, "BFu9i_BFu17i_BFu33");
    set_bf_and_test(lv, v3, 3, 2, 33, hide_ull(1LL<<32), "BFu9i_BFu17i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu33, BFu9i_BFu17i_BFu33)
//============================================================================



static void Test_BFu9i_BFu17i_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu7c");
    static STRUCT_IF_C BFu9i_BFu17i_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu7c");
    set_bf_and_test(lv, v3, 3, 2, 7, 1, "BFu9i_BFu17i_BFu7c");
    set_bf_and_test(lv, v3, 3, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu17i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu7c, BFu9i_BFu17i_BFu7c)
//============================================================================



static void Test_BFu9i_BFu17i_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu7i");
    static STRUCT_IF_C BFu9i_BFu17i_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu7i");
    set_bf_and_test(lv, v3, 3, 2, 7, 1, "BFu9i_BFu17i_BFu7i");
    set_bf_and_test(lv, v3, 3, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu17i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu7i, BFu9i_BFu17i_BFu7i)
//============================================================================



static void Test_BFu9i_BFu17i_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu17i_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu7ll");
    set_bf_and_test(lv, v3, 3, 2, 7, 1, "BFu9i_BFu17i_BFu7ll");
    set_bf_and_test(lv, v3, 3, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu17i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu7ll, BFu9i_BFu17i_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu17i_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu7s");
    static STRUCT_IF_C BFu9i_BFu17i_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu7s");
    set_bf_and_test(lv, v3, 3, 2, 7, 1, "BFu9i_BFu17i_BFu7s");
    set_bf_and_test(lv, v3, 3, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu17i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu7s, BFu9i_BFu17i_BFu7s)
//============================================================================



static void Test_BFu9i_BFu17i_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu8c");
    static STRUCT_IF_C BFu9i_BFu17i_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu8c");
    set_bf_and_test(lv, v3, 3, 2, 8, 1, "BFu9i_BFu17i_BFu8c");
    set_bf_and_test(lv, v3, 3, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu17i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu8c, BFu9i_BFu17i_BFu8c)
//============================================================================



static void Test_BFu9i_BFu17i_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu8i");
    static STRUCT_IF_C BFu9i_BFu17i_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu8i");
    set_bf_and_test(lv, v3, 3, 2, 8, 1, "BFu9i_BFu17i_BFu8i");
    set_bf_and_test(lv, v3, 3, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu17i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu8i, BFu9i_BFu17i_BFu8i)
//============================================================================



static void Test_BFu9i_BFu17i_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu17i_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu8ll");
    set_bf_and_test(lv, v3, 3, 2, 8, 1, "BFu9i_BFu17i_BFu8ll");
    set_bf_and_test(lv, v3, 3, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu17i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu8ll, BFu9i_BFu17i_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu17i_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu8s");
    static STRUCT_IF_C BFu9i_BFu17i_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu8s");
    set_bf_and_test(lv, v3, 3, 2, 8, 1, "BFu9i_BFu17i_BFu8s");
    set_bf_and_test(lv, v3, 3, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu17i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu8s, BFu9i_BFu17i_BFu8s)
//============================================================================



static void Test_BFu9i_BFu17i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu9i");
    static STRUCT_IF_C BFu9i_BFu17i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu9i");
    set_bf_and_test(lv, v3, 3, 2, 9, 1, "BFu9i_BFu17i_BFu9i");
    set_bf_and_test(lv, v3, 3, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu9i, BFu9i_BFu17i_BFu9i)
//============================================================================



static void Test_BFu9i_BFu17i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu17i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu9ll");
    set_bf_and_test(lv, v3, 3, 2, 9, 1, "BFu9i_BFu17i_BFu9ll");
    set_bf_and_test(lv, v3, 3, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu9ll, BFu9i_BFu17i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu17i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu17i_BFu9s");
    static STRUCT_IF_C BFu9i_BFu17i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_BFu9s");
    set_bf_and_test(lv, v3, 3, 2, 9, 1, "BFu9i_BFu17i_BFu9s");
    set_bf_and_test(lv, v3, 3, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_BFu9s, BFu9i_BFu17i_BFu9s)
//============================================================================



static void Test_BFu9i_BFu17i_C()
{
  {
    init_simple_test("BFu9i_BFu17i_C");
    static STRUCT_IF_C BFu9i_BFu17i_C lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_C");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_C");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_C");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_C, BFu9i_BFu17i_C)
//============================================================================



static void Test_BFu9i_BFu17i_D()
{
  {
    init_simple_test("BFu9i_BFu17i_D");
    static STRUCT_IF_C BFu9i_BFu17i_D lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_BFu17i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_D");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_D");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_D");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_D, BFu9i_BFu17i_D)
//============================================================================



static void Test_BFu9i_BFu17i_F()
{
  {
    init_simple_test("BFu9i_BFu17i_F");
    static STRUCT_IF_C BFu9i_BFu17i_F lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu17i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_F");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_F");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_F");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_F, BFu9i_BFu17i_F)
//============================================================================



static void Test_BFu9i_BFu17i_I()
{
  {
    init_simple_test("BFu9i_BFu17i_I");
    static STRUCT_IF_C BFu9i_BFu17i_I lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu17i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_I");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_I");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_I");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_I, BFu9i_BFu17i_I)
//============================================================================



static void Test_BFu9i_BFu17i_Ip()
{
  {
    init_simple_test("BFu9i_BFu17i_Ip");
    static STRUCT_IF_C BFu9i_BFu17i_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_BFu17i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_Ip");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_Ip, BFu9i_BFu17i_Ip)
//============================================================================



static void Test_BFu9i_BFu17i_L()
{
  {
    init_simple_test("BFu9i_BFu17i_L");
    static STRUCT_IF_C BFu9i_BFu17i_L lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_BFu17i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_L");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_L");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_L");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_L, BFu9i_BFu17i_L)
//============================================================================



static void Test_BFu9i_BFu17i_S()
{
  {
    init_simple_test("BFu9i_BFu17i_S");
    static STRUCT_IF_C BFu9i_BFu17i_S lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_S");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_S");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_S");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_S, BFu9i_BFu17i_S)
//============================================================================



static void Test_BFu9i_BFu17i_Uc()
{
  {
    init_simple_test("BFu9i_BFu17i_Uc");
    static STRUCT_IF_C BFu9i_BFu17i_Uc lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_Uc");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_Uc, BFu9i_BFu17i_Uc)
//============================================================================



static void Test_BFu9i_BFu17i_Ui()
{
  {
    init_simple_test("BFu9i_BFu17i_Ui");
    static STRUCT_IF_C BFu9i_BFu17i_Ui lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu17i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_Ui");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_Ui, BFu9i_BFu17i_Ui)
//============================================================================



static void Test_BFu9i_BFu17i_Ul()
{
  {
    init_simple_test("BFu9i_BFu17i_Ul");
    static STRUCT_IF_C BFu9i_BFu17i_Ul lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_BFu17i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_Ul");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_Ul, BFu9i_BFu17i_Ul)
//============================================================================



static void Test_BFu9i_BFu17i_Us()
{
  {
    init_simple_test("BFu9i_BFu17i_Us");
    static STRUCT_IF_C BFu9i_BFu17i_Us lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_Us");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_Us");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_Us");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_Us, BFu9i_BFu17i_Us)
//============================================================================



static void Test_BFu9i_BFu17i_Vp()
{
  {
    init_simple_test("BFu9i_BFu17i_Vp");
    static STRUCT_IF_C BFu9i_BFu17i_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_BFu17i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17i_Vp");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17i_Vp, BFu9i_BFu17i_Vp)
//============================================================================



static void Test_BFu9i_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll, BFu9i_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu15i");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu15i");
    set_bf_and_test(lv, v3, 3, 2, 15, 1, "BFu9i_BFu17ll_BFu15i");
    set_bf_and_test(lv, v3, 3, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu17ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu15i, BFu9i_BFu17ll_BFu15i)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v3, 3, 2, 15, 1, "BFu9i_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v3, 3, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu17ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu15ll, BFu9i_BFu17ll_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu15s");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu15s");
    set_bf_and_test(lv, v3, 3, 2, 15, 1, "BFu9i_BFu17ll_BFu15s");
    set_bf_and_test(lv, v3, 3, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu17ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu15s, BFu9i_BFu17ll_BFu15s)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu16i");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu16i");
    set_bf_and_test(lv, v3, 3, 2, 16, 1, "BFu9i_BFu17ll_BFu16i");
    set_bf_and_test(lv, v3, 3, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu17ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu16i, BFu9i_BFu17ll_BFu16i)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v3, 3, 2, 16, 1, "BFu9i_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v3, 3, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu17ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu16ll, BFu9i_BFu17ll_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu16s");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu16s");
    set_bf_and_test(lv, v3, 3, 2, 16, 1, "BFu9i_BFu17ll_BFu16s");
    set_bf_and_test(lv, v3, 3, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu17ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu16s, BFu9i_BFu17ll_BFu16s)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu17i");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu17i");
    set_bf_and_test(lv, v3, 3, 2, 17, 1, "BFu9i_BFu17ll_BFu17i");
    set_bf_and_test(lv, v3, 3, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu17i, BFu9i_BFu17ll_BFu17i)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v3, 3, 2, 17, 1, "BFu9i_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v3, 3, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu17ll, BFu9i_BFu17ll_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu1c");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu17ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu1c");
    set_bf_and_test(lv, v3, 3, 2, 1, 1, "BFu9i_BFu17ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu1c, BFu9i_BFu17ll_BFu1c)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu1i");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu17ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu1i");
    set_bf_and_test(lv, v3, 3, 2, 1, 1, "BFu9i_BFu17ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu1i, BFu9i_BFu17ll_BFu1i)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu17ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v3, 3, 2, 1, 1, "BFu9i_BFu17ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu1ll, BFu9i_BFu17ll_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu1s");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu17ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu1s");
    set_bf_and_test(lv, v3, 3, 2, 1, 1, "BFu9i_BFu17ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu1s, BFu9i_BFu17ll_BFu1s)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu31i");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu17ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu31i");
    set_bf_and_test(lv, v3, 3, 2, 31, 1, "BFu9i_BFu17ll_BFu31i");
    set_bf_and_test(lv, v3, 3, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu17ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu31i, BFu9i_BFu17ll_BFu31i)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu17ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v3, 3, 2, 31, 1, "BFu9i_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v3, 3, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu17ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu31ll, BFu9i_BFu17ll_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu32i");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu17ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu32i");
    set_bf_and_test(lv, v3, 3, 2, 32, 1, "BFu9i_BFu17ll_BFu32i");
    set_bf_and_test(lv, v3, 3, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu17ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu32i, BFu9i_BFu17ll_BFu32i)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu17ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v3, 3, 2, 32, 1, "BFu9i_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v3, 3, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu17ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu32ll, BFu9i_BFu17ll_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu33()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu33");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu17ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu33");
    set_bf_and_test(lv, v3, 3, 2, 33, 1, "BFu9i_BFu17ll_BFu33");
    set_bf_and_test(lv, v3, 3, 2, 33, hide_ull(1LL<<32), "BFu9i_BFu17ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu33, BFu9i_BFu17ll_BFu33)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu7c");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu7c");
    set_bf_and_test(lv, v3, 3, 2, 7, 1, "BFu9i_BFu17ll_BFu7c");
    set_bf_and_test(lv, v3, 3, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu17ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu7c, BFu9i_BFu17ll_BFu7c)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu7i");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu7i");
    set_bf_and_test(lv, v3, 3, 2, 7, 1, "BFu9i_BFu17ll_BFu7i");
    set_bf_and_test(lv, v3, 3, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu17ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu7i, BFu9i_BFu17ll_BFu7i)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v3, 3, 2, 7, 1, "BFu9i_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v3, 3, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu17ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu7ll, BFu9i_BFu17ll_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu7s");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu7s");
    set_bf_and_test(lv, v3, 3, 2, 7, 1, "BFu9i_BFu17ll_BFu7s");
    set_bf_and_test(lv, v3, 3, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu17ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu7s, BFu9i_BFu17ll_BFu7s)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu8c");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu8c");
    set_bf_and_test(lv, v3, 3, 2, 8, 1, "BFu9i_BFu17ll_BFu8c");
    set_bf_and_test(lv, v3, 3, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu17ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu8c, BFu9i_BFu17ll_BFu8c)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu8i");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu8i");
    set_bf_and_test(lv, v3, 3, 2, 8, 1, "BFu9i_BFu17ll_BFu8i");
    set_bf_and_test(lv, v3, 3, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu17ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu8i, BFu9i_BFu17ll_BFu8i)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v3, 3, 2, 8, 1, "BFu9i_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v3, 3, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu17ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu8ll, BFu9i_BFu17ll_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu8s");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu8s");
    set_bf_and_test(lv, v3, 3, 2, 8, 1, "BFu9i_BFu17ll_BFu8s");
    set_bf_and_test(lv, v3, 3, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu17ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu8s, BFu9i_BFu17ll_BFu8s)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu9i");
    set_bf_and_test(lv, v3, 3, 2, 9, 1, "BFu9i_BFu17ll_BFu9i");
    set_bf_and_test(lv, v3, 3, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu9i, BFu9i_BFu17ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v3, 3, 2, 9, 1, "BFu9i_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v3, 3, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu9ll, BFu9i_BFu17ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu17ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu17ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFu17ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_BFu9s");
    set_bf_and_test(lv, v3, 3, 2, 9, 1, "BFu9i_BFu17ll_BFu9s");
    set_bf_and_test(lv, v3, 3, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_BFu9s, BFu9i_BFu17ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFu17ll_C()
{
  {
    init_simple_test("BFu9i_BFu17ll_C");
    static STRUCT_IF_C BFu9i_BFu17ll_C lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_C");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_C");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_C");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_C, BFu9i_BFu17ll_C)
//============================================================================



static void Test_BFu9i_BFu17ll_D()
{
  {
    init_simple_test("BFu9i_BFu17ll_D");
    static STRUCT_IF_C BFu9i_BFu17ll_D lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_BFu17ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_D");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_D");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_D");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_D, BFu9i_BFu17ll_D)
//============================================================================



static void Test_BFu9i_BFu17ll_F()
{
  {
    init_simple_test("BFu9i_BFu17ll_F");
    static STRUCT_IF_C BFu9i_BFu17ll_F lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu17ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_F");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_F");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_F");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_F, BFu9i_BFu17ll_F)
//============================================================================



static void Test_BFu9i_BFu17ll_I()
{
  {
    init_simple_test("BFu9i_BFu17ll_I");
    static STRUCT_IF_C BFu9i_BFu17ll_I lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu17ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_I");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_I");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_I");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_I, BFu9i_BFu17ll_I)
//============================================================================



static void Test_BFu9i_BFu17ll_Ip()
{
  {
    init_simple_test("BFu9i_BFu17ll_Ip");
    static STRUCT_IF_C BFu9i_BFu17ll_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_BFu17ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_Ip");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_Ip, BFu9i_BFu17ll_Ip)
//============================================================================



static void Test_BFu9i_BFu17ll_L()
{
  {
    init_simple_test("BFu9i_BFu17ll_L");
    static STRUCT_IF_C BFu9i_BFu17ll_L lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_BFu17ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_L");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_L");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_L");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_L, BFu9i_BFu17ll_L)
//============================================================================



static void Test_BFu9i_BFu17ll_S()
{
  {
    init_simple_test("BFu9i_BFu17ll_S");
    static STRUCT_IF_C BFu9i_BFu17ll_S lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_S");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_S");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_S");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_S, BFu9i_BFu17ll_S)
//============================================================================



static void Test_BFu9i_BFu17ll_Uc()
{
  {
    init_simple_test("BFu9i_BFu17ll_Uc");
    static STRUCT_IF_C BFu9i_BFu17ll_Uc lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu17ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_Uc");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_Uc, BFu9i_BFu17ll_Uc)
//============================================================================



static void Test_BFu9i_BFu17ll_Ui()
{
  {
    init_simple_test("BFu9i_BFu17ll_Ui");
    static STRUCT_IF_C BFu9i_BFu17ll_Ui lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu17ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_Ui");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_Ui, BFu9i_BFu17ll_Ui)
//============================================================================



static void Test_BFu9i_BFu17ll_Ul()
{
  {
    init_simple_test("BFu9i_BFu17ll_Ul");
    static STRUCT_IF_C BFu9i_BFu17ll_Ul lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_BFu17ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_Ul");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_Ul, BFu9i_BFu17ll_Ul)
//============================================================================



static void Test_BFu9i_BFu17ll_Us()
{
  {
    init_simple_test("BFu9i_BFu17ll_Us");
    static STRUCT_IF_C BFu9i_BFu17ll_Us lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu17ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_Us");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_Us, BFu9i_BFu17ll_Us)
//============================================================================



static void Test_BFu9i_BFu17ll_Vp()
{
  {
    init_simple_test("BFu9i_BFu17ll_Vp");
    static STRUCT_IF_C BFu9i_BFu17ll_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_BFu17ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu17ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu17ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu17ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9i_BFu17ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu17ll_Vp");
    check_field_offset(lv, v3, 4, "BFu9i_BFu17ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu17ll_Vp, BFu9i_BFu17ll_Vp)
//============================================================================



static void Test_BFu9i_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu1c");
    static STRUCT_IF_C BFu9i_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c, BFu9i_BFu1c)
//============================================================================



static void Test_BFu9i_BFu1c_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu15i");
    static STRUCT_IF_C BFu9i_BFu1c_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1c_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu15i");
    set_bf_and_test(lv, v3, 1, 2, 15, 1, "BFu9i_BFu1c_BFu15i");
    set_bf_and_test(lv, v3, 1, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu1c_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu15i, BFu9i_BFu1c_BFu15i)
//============================================================================



static void Test_BFu9i_BFu1c_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu1c_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1c_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu15ll");
    set_bf_and_test(lv, v3, 1, 2, 15, 1, "BFu9i_BFu1c_BFu15ll");
    set_bf_and_test(lv, v3, 1, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu1c_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu15ll, BFu9i_BFu1c_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu1c_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu15s");
    static STRUCT_IF_C BFu9i_BFu1c_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1c_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu15s");
    set_bf_and_test(lv, v3, 1, 2, 15, 1, "BFu9i_BFu1c_BFu15s");
    set_bf_and_test(lv, v3, 1, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu1c_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu15s, BFu9i_BFu1c_BFu15s)
//============================================================================



static void Test_BFu9i_BFu1c_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu16i");
    static STRUCT_IF_C BFu9i_BFu1c_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu16i");
    set_bf_and_test(lv, v3, 1, 2, 16, 1, "BFu9i_BFu1c_BFu16i");
    set_bf_and_test(lv, v3, 1, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu1c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu16i, BFu9i_BFu1c_BFu16i)
//============================================================================



static void Test_BFu9i_BFu1c_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu1c_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu16ll");
    set_bf_and_test(lv, v3, 1, 2, 16, 1, "BFu9i_BFu1c_BFu16ll");
    set_bf_and_test(lv, v3, 1, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu1c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu16ll, BFu9i_BFu1c_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu1c_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu16s");
    static STRUCT_IF_C BFu9i_BFu1c_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu16s");
    set_bf_and_test(lv, v3, 1, 2, 16, 1, "BFu9i_BFu1c_BFu16s");
    set_bf_and_test(lv, v3, 1, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu1c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu16s, BFu9i_BFu1c_BFu16s)
//============================================================================



static void Test_BFu9i_BFu1c_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu17i");
    static STRUCT_IF_C BFu9i_BFu1c_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu17i");
    set_bf_and_test(lv, v3, 1, 2, 17, 1, "BFu9i_BFu1c_BFu17i");
    set_bf_and_test(lv, v3, 1, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu1c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu17i, BFu9i_BFu1c_BFu17i)
//============================================================================



static void Test_BFu9i_BFu1c_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu1c_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu17ll");
    set_bf_and_test(lv, v3, 1, 2, 17, 1, "BFu9i_BFu1c_BFu17ll");
    set_bf_and_test(lv, v3, 1, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu1c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu17ll, BFu9i_BFu1c_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu1c_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu1c");
    static STRUCT_IF_C BFu9i_BFu1c_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1c_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu1c");
    set_bf_and_test(lv, v3, 1, 2, 1, 1, "BFu9i_BFu1c_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu1c, BFu9i_BFu1c_BFu1c)
//============================================================================



static void Test_BFu9i_BFu1c_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu1i");
    static STRUCT_IF_C BFu9i_BFu1c_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1c_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu1i");
    set_bf_and_test(lv, v3, 1, 2, 1, 1, "BFu9i_BFu1c_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu1i, BFu9i_BFu1c_BFu1i)
//============================================================================



static void Test_BFu9i_BFu1c_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu1c_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1c_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu1ll");
    set_bf_and_test(lv, v3, 1, 2, 1, 1, "BFu9i_BFu1c_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu1ll, BFu9i_BFu1c_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu1c_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu1s");
    static STRUCT_IF_C BFu9i_BFu1c_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1c_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu1s");
    set_bf_and_test(lv, v3, 1, 2, 1, 1, "BFu9i_BFu1c_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu1s, BFu9i_BFu1c_BFu1s)
//============================================================================



static void Test_BFu9i_BFu1c_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu31i");
    static STRUCT_IF_C BFu9i_BFu1c_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1c_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu31i");
    set_bf_and_test(lv, v3, 1, 2, 31, 1, "BFu9i_BFu1c_BFu31i");
    set_bf_and_test(lv, v3, 1, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu1c_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu31i, BFu9i_BFu1c_BFu31i)
//============================================================================



static void Test_BFu9i_BFu1c_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu1c_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1c_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu31ll");
    set_bf_and_test(lv, v3, 1, 2, 31, 1, "BFu9i_BFu1c_BFu31ll");
    set_bf_and_test(lv, v3, 1, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu1c_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu31ll, BFu9i_BFu1c_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu1c_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu32i");
    static STRUCT_IF_C BFu9i_BFu1c_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1c_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu32i");
    set_bf_and_test(lv, v3, 1, 2, 32, 1, "BFu9i_BFu1c_BFu32i");
    set_bf_and_test(lv, v3, 1, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu1c_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu32i, BFu9i_BFu1c_BFu32i)
//============================================================================



static void Test_BFu9i_BFu1c_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu1c_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1c_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu32ll");
    set_bf_and_test(lv, v3, 1, 2, 32, 1, "BFu9i_BFu1c_BFu32ll");
    set_bf_and_test(lv, v3, 1, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu1c_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu32ll, BFu9i_BFu1c_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu1c_BFu33()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu33");
    static STRUCT_IF_C BFu9i_BFu1c_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1c_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu33");
    set_bf_and_test(lv, v3, 1, 2, 33, 1, "BFu9i_BFu1c_BFu33");
    set_bf_and_test(lv, v3, 1, 2, 33, hide_ull(1LL<<32), "BFu9i_BFu1c_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu33, BFu9i_BFu1c_BFu33)
//============================================================================



static void Test_BFu9i_BFu1c_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu7c");
    static STRUCT_IF_C BFu9i_BFu1c_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu7c");
    set_bf_and_test(lv, v3, 1, 2, 7, 1, "BFu9i_BFu1c_BFu7c");
    set_bf_and_test(lv, v3, 1, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu1c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu7c, BFu9i_BFu1c_BFu7c)
//============================================================================



static void Test_BFu9i_BFu1c_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu7i");
    static STRUCT_IF_C BFu9i_BFu1c_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu7i");
    set_bf_and_test(lv, v3, 1, 2, 7, 1, "BFu9i_BFu1c_BFu7i");
    set_bf_and_test(lv, v3, 1, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu1c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu7i, BFu9i_BFu1c_BFu7i)
//============================================================================



static void Test_BFu9i_BFu1c_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu1c_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 2, 7, 1, "BFu9i_BFu1c_BFu7ll");
    set_bf_and_test(lv, v3, 1, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu1c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu7ll, BFu9i_BFu1c_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu1c_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu7s");
    static STRUCT_IF_C BFu9i_BFu1c_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu7s");
    set_bf_and_test(lv, v3, 1, 2, 7, 1, "BFu9i_BFu1c_BFu7s");
    set_bf_and_test(lv, v3, 1, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu1c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu7s, BFu9i_BFu1c_BFu7s)
//============================================================================



static void Test_BFu9i_BFu1c_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu8c");
    static STRUCT_IF_C BFu9i_BFu1c_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu8c");
    set_bf_and_test(lv, v3, 1, 2, 8, 1, "BFu9i_BFu1c_BFu8c");
    set_bf_and_test(lv, v3, 1, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu1c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu8c, BFu9i_BFu1c_BFu8c)
//============================================================================



static void Test_BFu9i_BFu1c_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu8i");
    static STRUCT_IF_C BFu9i_BFu1c_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu8i");
    set_bf_and_test(lv, v3, 1, 2, 8, 1, "BFu9i_BFu1c_BFu8i");
    set_bf_and_test(lv, v3, 1, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu1c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu8i, BFu9i_BFu1c_BFu8i)
//============================================================================



static void Test_BFu9i_BFu1c_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu1c_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu8ll");
    set_bf_and_test(lv, v3, 1, 2, 8, 1, "BFu9i_BFu1c_BFu8ll");
    set_bf_and_test(lv, v3, 1, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu1c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu8ll, BFu9i_BFu1c_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu1c_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu8s");
    static STRUCT_IF_C BFu9i_BFu1c_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu8s");
    set_bf_and_test(lv, v3, 1, 2, 8, 1, "BFu9i_BFu1c_BFu8s");
    set_bf_and_test(lv, v3, 1, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu1c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu8s, BFu9i_BFu1c_BFu8s)
//============================================================================



static void Test_BFu9i_BFu1c_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu9i");
    static STRUCT_IF_C BFu9i_BFu1c_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu9i");
    set_bf_and_test(lv, v3, 1, 2, 9, 1, "BFu9i_BFu1c_BFu9i");
    set_bf_and_test(lv, v3, 1, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu9i, BFu9i_BFu1c_BFu9i)
//============================================================================



static void Test_BFu9i_BFu1c_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu1c_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu9ll");
    set_bf_and_test(lv, v3, 1, 2, 9, 1, "BFu9i_BFu1c_BFu9ll");
    set_bf_and_test(lv, v3, 1, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu9ll, BFu9i_BFu1c_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu1c_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu1c_BFu9s");
    static STRUCT_IF_C BFu9i_BFu1c_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_BFu9s");
    set_bf_and_test(lv, v3, 1, 2, 9, 1, "BFu9i_BFu1c_BFu9s");
    set_bf_and_test(lv, v3, 1, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_BFu9s, BFu9i_BFu1c_BFu9s)
//============================================================================



static void Test_BFu9i_BFu1c_C()
{
  {
    init_simple_test("BFu9i_BFu1c_C");
    static STRUCT_IF_C BFu9i_BFu1c_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1c_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_C");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_C");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1c_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_C, BFu9i_BFu1c_C)
//============================================================================



static void Test_BFu9i_BFu1c_D()
{
  {
    init_simple_test("BFu9i_BFu1c_D");
    static STRUCT_IF_C BFu9i_BFu1c_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu1c_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_D");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_D");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1c_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_D, BFu9i_BFu1c_D)
//============================================================================



static void Test_BFu9i_BFu1c_F()
{
  {
    init_simple_test("BFu9i_BFu1c_F");
    static STRUCT_IF_C BFu9i_BFu1c_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1c_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_F");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_F");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1c_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_F, BFu9i_BFu1c_F)
//============================================================================



static void Test_BFu9i_BFu1c_I()
{
  {
    init_simple_test("BFu9i_BFu1c_I");
    static STRUCT_IF_C BFu9i_BFu1c_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1c_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_I");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_I");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1c_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_I, BFu9i_BFu1c_I)
//============================================================================



static void Test_BFu9i_BFu1c_Ip()
{
  {
    init_simple_test("BFu9i_BFu1c_Ip");
    static STRUCT_IF_C BFu9i_BFu1c_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_BFu1c_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_Ip");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_Ip");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1c_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_Ip, BFu9i_BFu1c_Ip)
//============================================================================



static void Test_BFu9i_BFu1c_L()
{
  {
    init_simple_test("BFu9i_BFu1c_L");
    static STRUCT_IF_C BFu9i_BFu1c_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu1c_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_L");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_L");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1c_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_L, BFu9i_BFu1c_L)
//============================================================================



static void Test_BFu9i_BFu1c_S()
{
  {
    init_simple_test("BFu9i_BFu1c_S");
    static STRUCT_IF_C BFu9i_BFu1c_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1c_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_S");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_S");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1c_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_S, BFu9i_BFu1c_S)
//============================================================================



static void Test_BFu9i_BFu1c_Uc()
{
  {
    init_simple_test("BFu9i_BFu1c_Uc");
    static STRUCT_IF_C BFu9i_BFu1c_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1c_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_Uc");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_Uc");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1c_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_Uc, BFu9i_BFu1c_Uc)
//============================================================================



static void Test_BFu9i_BFu1c_Ui()
{
  {
    init_simple_test("BFu9i_BFu1c_Ui");
    static STRUCT_IF_C BFu9i_BFu1c_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1c_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_Ui");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_Ui");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1c_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_Ui, BFu9i_BFu1c_Ui)
//============================================================================



static void Test_BFu9i_BFu1c_Ul()
{
  {
    init_simple_test("BFu9i_BFu1c_Ul");
    static STRUCT_IF_C BFu9i_BFu1c_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu1c_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_Ul");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_Ul");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1c_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_Ul, BFu9i_BFu1c_Ul)
//============================================================================



static void Test_BFu9i_BFu1c_Us()
{
  {
    init_simple_test("BFu9i_BFu1c_Us");
    static STRUCT_IF_C BFu9i_BFu1c_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1c_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_Us");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_Us");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1c_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_Us, BFu9i_BFu1c_Us)
//============================================================================



static void Test_BFu9i_BFu1c_Vp()
{
  {
    init_simple_test("BFu9i_BFu1c_Vp");
    static STRUCT_IF_C BFu9i_BFu1c_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_BFu1c_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1c_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1c_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1c_Vp");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1c_Vp");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1c_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1c_Vp, BFu9i_BFu1c_Vp)
//============================================================================



static void Test_BFu9i_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu1i");
    static STRUCT_IF_C BFu9i_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i, BFu9i_BFu1i)
//============================================================================



static void Test_BFu9i_BFu1i_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu15i");
    static STRUCT_IF_C BFu9i_BFu1i_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu15i");
    set_bf_and_test(lv, v3, 1, 2, 15, 1, "BFu9i_BFu1i_BFu15i");
    set_bf_and_test(lv, v3, 1, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu1i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu15i, BFu9i_BFu1i_BFu15i)
//============================================================================



static void Test_BFu9i_BFu1i_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu1i_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu15ll");
    set_bf_and_test(lv, v3, 1, 2, 15, 1, "BFu9i_BFu1i_BFu15ll");
    set_bf_and_test(lv, v3, 1, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu1i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu15ll, BFu9i_BFu1i_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu1i_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu15s");
    static STRUCT_IF_C BFu9i_BFu1i_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu15s");
    set_bf_and_test(lv, v3, 1, 2, 15, 1, "BFu9i_BFu1i_BFu15s");
    set_bf_and_test(lv, v3, 1, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu1i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu15s, BFu9i_BFu1i_BFu15s)
//============================================================================



static void Test_BFu9i_BFu1i_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu16i");
    static STRUCT_IF_C BFu9i_BFu1i_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu16i");
    set_bf_and_test(lv, v3, 1, 2, 16, 1, "BFu9i_BFu1i_BFu16i");
    set_bf_and_test(lv, v3, 1, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu1i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu16i, BFu9i_BFu1i_BFu16i)
//============================================================================



static void Test_BFu9i_BFu1i_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu1i_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu16ll");
    set_bf_and_test(lv, v3, 1, 2, 16, 1, "BFu9i_BFu1i_BFu16ll");
    set_bf_and_test(lv, v3, 1, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu1i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu16ll, BFu9i_BFu1i_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu1i_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu16s");
    static STRUCT_IF_C BFu9i_BFu1i_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu16s");
    set_bf_and_test(lv, v3, 1, 2, 16, 1, "BFu9i_BFu1i_BFu16s");
    set_bf_and_test(lv, v3, 1, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu1i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu16s, BFu9i_BFu1i_BFu16s)
//============================================================================



static void Test_BFu9i_BFu1i_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu17i");
    static STRUCT_IF_C BFu9i_BFu1i_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu17i");
    set_bf_and_test(lv, v3, 1, 2, 17, 1, "BFu9i_BFu1i_BFu17i");
    set_bf_and_test(lv, v3, 1, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu1i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu17i, BFu9i_BFu1i_BFu17i)
//============================================================================



static void Test_BFu9i_BFu1i_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu1i_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu17ll");
    set_bf_and_test(lv, v3, 1, 2, 17, 1, "BFu9i_BFu1i_BFu17ll");
    set_bf_and_test(lv, v3, 1, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu1i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu17ll, BFu9i_BFu1i_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu1i_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu1c");
    static STRUCT_IF_C BFu9i_BFu1i_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu1c");
    set_bf_and_test(lv, v3, 1, 2, 1, 1, "BFu9i_BFu1i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu1c, BFu9i_BFu1i_BFu1c)
//============================================================================



static void Test_BFu9i_BFu1i_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu1i");
    static STRUCT_IF_C BFu9i_BFu1i_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu1i");
    set_bf_and_test(lv, v3, 1, 2, 1, 1, "BFu9i_BFu1i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu1i, BFu9i_BFu1i_BFu1i)
//============================================================================



static void Test_BFu9i_BFu1i_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu1i_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu1ll");
    set_bf_and_test(lv, v3, 1, 2, 1, 1, "BFu9i_BFu1i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu1ll, BFu9i_BFu1i_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu1i_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu1s");
    static STRUCT_IF_C BFu9i_BFu1i_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu1s");
    set_bf_and_test(lv, v3, 1, 2, 1, 1, "BFu9i_BFu1i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu1s, BFu9i_BFu1i_BFu1s)
//============================================================================



static void Test_BFu9i_BFu1i_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu31i");
    static STRUCT_IF_C BFu9i_BFu1i_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu31i");
    set_bf_and_test(lv, v3, 1, 2, 31, 1, "BFu9i_BFu1i_BFu31i");
    set_bf_and_test(lv, v3, 1, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu1i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu31i, BFu9i_BFu1i_BFu31i)
//============================================================================



static void Test_BFu9i_BFu1i_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu1i_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu31ll");
    set_bf_and_test(lv, v3, 1, 2, 31, 1, "BFu9i_BFu1i_BFu31ll");
    set_bf_and_test(lv, v3, 1, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu1i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu31ll, BFu9i_BFu1i_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu1i_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu32i");
    static STRUCT_IF_C BFu9i_BFu1i_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu32i");
    set_bf_and_test(lv, v3, 1, 2, 32, 1, "BFu9i_BFu1i_BFu32i");
    set_bf_and_test(lv, v3, 1, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu1i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu32i, BFu9i_BFu1i_BFu32i)
//============================================================================



static void Test_BFu9i_BFu1i_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu1i_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu32ll");
    set_bf_and_test(lv, v3, 1, 2, 32, 1, "BFu9i_BFu1i_BFu32ll");
    set_bf_and_test(lv, v3, 1, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu1i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu32ll, BFu9i_BFu1i_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu1i_BFu33()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu33");
    static STRUCT_IF_C BFu9i_BFu1i_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu33");
    set_bf_and_test(lv, v3, 1, 2, 33, 1, "BFu9i_BFu1i_BFu33");
    set_bf_and_test(lv, v3, 1, 2, 33, hide_ull(1LL<<32), "BFu9i_BFu1i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu33, BFu9i_BFu1i_BFu33)
//============================================================================



static void Test_BFu9i_BFu1i_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu7c");
    static STRUCT_IF_C BFu9i_BFu1i_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu7c");
    set_bf_and_test(lv, v3, 1, 2, 7, 1, "BFu9i_BFu1i_BFu7c");
    set_bf_and_test(lv, v3, 1, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu1i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu7c, BFu9i_BFu1i_BFu7c)
//============================================================================



static void Test_BFu9i_BFu1i_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu7i");
    static STRUCT_IF_C BFu9i_BFu1i_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu7i");
    set_bf_and_test(lv, v3, 1, 2, 7, 1, "BFu9i_BFu1i_BFu7i");
    set_bf_and_test(lv, v3, 1, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu1i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu7i, BFu9i_BFu1i_BFu7i)
//============================================================================



static void Test_BFu9i_BFu1i_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu1i_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 2, 7, 1, "BFu9i_BFu1i_BFu7ll");
    set_bf_and_test(lv, v3, 1, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu1i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu7ll, BFu9i_BFu1i_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu1i_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu7s");
    static STRUCT_IF_C BFu9i_BFu1i_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu7s");
    set_bf_and_test(lv, v3, 1, 2, 7, 1, "BFu9i_BFu1i_BFu7s");
    set_bf_and_test(lv, v3, 1, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu1i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu7s, BFu9i_BFu1i_BFu7s)
//============================================================================



static void Test_BFu9i_BFu1i_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu8c");
    static STRUCT_IF_C BFu9i_BFu1i_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu8c");
    set_bf_and_test(lv, v3, 1, 2, 8, 1, "BFu9i_BFu1i_BFu8c");
    set_bf_and_test(lv, v3, 1, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu1i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu8c, BFu9i_BFu1i_BFu8c)
//============================================================================



static void Test_BFu9i_BFu1i_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu8i");
    static STRUCT_IF_C BFu9i_BFu1i_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu8i");
    set_bf_and_test(lv, v3, 1, 2, 8, 1, "BFu9i_BFu1i_BFu8i");
    set_bf_and_test(lv, v3, 1, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu1i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu8i, BFu9i_BFu1i_BFu8i)
//============================================================================



static void Test_BFu9i_BFu1i_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu1i_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu8ll");
    set_bf_and_test(lv, v3, 1, 2, 8, 1, "BFu9i_BFu1i_BFu8ll");
    set_bf_and_test(lv, v3, 1, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu1i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu8ll, BFu9i_BFu1i_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu1i_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu8s");
    static STRUCT_IF_C BFu9i_BFu1i_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu8s");
    set_bf_and_test(lv, v3, 1, 2, 8, 1, "BFu9i_BFu1i_BFu8s");
    set_bf_and_test(lv, v3, 1, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu1i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu8s, BFu9i_BFu1i_BFu8s)
//============================================================================



static void Test_BFu9i_BFu1i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu9i");
    static STRUCT_IF_C BFu9i_BFu1i_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu9i");
    set_bf_and_test(lv, v3, 1, 2, 9, 1, "BFu9i_BFu1i_BFu9i");
    set_bf_and_test(lv, v3, 1, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu9i, BFu9i_BFu1i_BFu9i)
//============================================================================



static void Test_BFu9i_BFu1i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu1i_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu9ll");
    set_bf_and_test(lv, v3, 1, 2, 9, 1, "BFu9i_BFu1i_BFu9ll");
    set_bf_and_test(lv, v3, 1, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu9ll, BFu9i_BFu1i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu1i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu1i_BFu9s");
    static STRUCT_IF_C BFu9i_BFu1i_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_BFu9s");
    set_bf_and_test(lv, v3, 1, 2, 9, 1, "BFu9i_BFu1i_BFu9s");
    set_bf_and_test(lv, v3, 1, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_BFu9s, BFu9i_BFu1i_BFu9s)
//============================================================================



static void Test_BFu9i_BFu1i_C()
{
  {
    init_simple_test("BFu9i_BFu1i_C");
    static STRUCT_IF_C BFu9i_BFu1i_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_C");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_C");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_C, BFu9i_BFu1i_C)
//============================================================================



static void Test_BFu9i_BFu1i_D()
{
  {
    init_simple_test("BFu9i_BFu1i_D");
    static STRUCT_IF_C BFu9i_BFu1i_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu1i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_D");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_D");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_D, BFu9i_BFu1i_D)
//============================================================================



static void Test_BFu9i_BFu1i_F()
{
  {
    init_simple_test("BFu9i_BFu1i_F");
    static STRUCT_IF_C BFu9i_BFu1i_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_F");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_F");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_F, BFu9i_BFu1i_F)
//============================================================================



static void Test_BFu9i_BFu1i_I()
{
  {
    init_simple_test("BFu9i_BFu1i_I");
    static STRUCT_IF_C BFu9i_BFu1i_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_I");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_I");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_I, BFu9i_BFu1i_I)
//============================================================================



static void Test_BFu9i_BFu1i_Ip()
{
  {
    init_simple_test("BFu9i_BFu1i_Ip");
    static STRUCT_IF_C BFu9i_BFu1i_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_BFu1i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_Ip");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_Ip, BFu9i_BFu1i_Ip)
//============================================================================



static void Test_BFu9i_BFu1i_L()
{
  {
    init_simple_test("BFu9i_BFu1i_L");
    static STRUCT_IF_C BFu9i_BFu1i_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu1i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_L");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_L");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_L, BFu9i_BFu1i_L)
//============================================================================



static void Test_BFu9i_BFu1i_S()
{
  {
    init_simple_test("BFu9i_BFu1i_S");
    static STRUCT_IF_C BFu9i_BFu1i_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_S");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_S");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_S, BFu9i_BFu1i_S)
//============================================================================



static void Test_BFu9i_BFu1i_Uc()
{
  {
    init_simple_test("BFu9i_BFu1i_Uc");
    static STRUCT_IF_C BFu9i_BFu1i_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_Uc");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_Uc, BFu9i_BFu1i_Uc)
//============================================================================



static void Test_BFu9i_BFu1i_Ui()
{
  {
    init_simple_test("BFu9i_BFu1i_Ui");
    static STRUCT_IF_C BFu9i_BFu1i_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_Ui");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_Ui, BFu9i_BFu1i_Ui)
//============================================================================



static void Test_BFu9i_BFu1i_Ul()
{
  {
    init_simple_test("BFu9i_BFu1i_Ul");
    static STRUCT_IF_C BFu9i_BFu1i_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu1i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_Ul");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_Ul, BFu9i_BFu1i_Ul)
//============================================================================



static void Test_BFu9i_BFu1i_Us()
{
  {
    init_simple_test("BFu9i_BFu1i_Us");
    static STRUCT_IF_C BFu9i_BFu1i_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_Us");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_Us");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_Us, BFu9i_BFu1i_Us)
//============================================================================



static void Test_BFu9i_BFu1i_Vp()
{
  {
    init_simple_test("BFu9i_BFu1i_Vp");
    static STRUCT_IF_C BFu9i_BFu1i_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_BFu1i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1i_Vp");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1i_Vp, BFu9i_BFu1i_Vp)
//============================================================================



static void Test_BFu9i_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll, BFu9i_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu15i");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu15i");
    set_bf_and_test(lv, v3, 1, 2, 15, 1, "BFu9i_BFu1ll_BFu15i");
    set_bf_and_test(lv, v3, 1, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu1ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu15i, BFu9i_BFu1ll_BFu15i)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu15ll");
    set_bf_and_test(lv, v3, 1, 2, 15, 1, "BFu9i_BFu1ll_BFu15ll");
    set_bf_and_test(lv, v3, 1, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu1ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu15ll, BFu9i_BFu1ll_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu15s");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu15s");
    set_bf_and_test(lv, v3, 1, 2, 15, 1, "BFu9i_BFu1ll_BFu15s");
    set_bf_and_test(lv, v3, 1, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu1ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu15s, BFu9i_BFu1ll_BFu15s)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu16i");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu16i");
    set_bf_and_test(lv, v3, 1, 2, 16, 1, "BFu9i_BFu1ll_BFu16i");
    set_bf_and_test(lv, v3, 1, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu1ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu16i, BFu9i_BFu1ll_BFu16i)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu16ll");
    set_bf_and_test(lv, v3, 1, 2, 16, 1, "BFu9i_BFu1ll_BFu16ll");
    set_bf_and_test(lv, v3, 1, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu1ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu16ll, BFu9i_BFu1ll_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu16s");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu16s");
    set_bf_and_test(lv, v3, 1, 2, 16, 1, "BFu9i_BFu1ll_BFu16s");
    set_bf_and_test(lv, v3, 1, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu1ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu16s, BFu9i_BFu1ll_BFu16s)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu17i");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu17i");
    set_bf_and_test(lv, v3, 1, 2, 17, 1, "BFu9i_BFu1ll_BFu17i");
    set_bf_and_test(lv, v3, 1, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu1ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu17i, BFu9i_BFu1ll_BFu17i)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu17ll");
    set_bf_and_test(lv, v3, 1, 2, 17, 1, "BFu9i_BFu1ll_BFu17ll");
    set_bf_and_test(lv, v3, 1, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu1ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu17ll, BFu9i_BFu1ll_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu1c");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu1c");
    set_bf_and_test(lv, v3, 1, 2, 1, 1, "BFu9i_BFu1ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu1c, BFu9i_BFu1ll_BFu1c)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu1i");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu1i");
    set_bf_and_test(lv, v3, 1, 2, 1, 1, "BFu9i_BFu1ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu1i, BFu9i_BFu1ll_BFu1i)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu1ll");
    set_bf_and_test(lv, v3, 1, 2, 1, 1, "BFu9i_BFu1ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu1ll, BFu9i_BFu1ll_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu1s");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu1s");
    set_bf_and_test(lv, v3, 1, 2, 1, 1, "BFu9i_BFu1ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu1s, BFu9i_BFu1ll_BFu1s)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu31i");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu31i");
    set_bf_and_test(lv, v3, 1, 2, 31, 1, "BFu9i_BFu1ll_BFu31i");
    set_bf_and_test(lv, v3, 1, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu1ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu31i, BFu9i_BFu1ll_BFu31i)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu31ll");
    set_bf_and_test(lv, v3, 1, 2, 31, 1, "BFu9i_BFu1ll_BFu31ll");
    set_bf_and_test(lv, v3, 1, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu1ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu31ll, BFu9i_BFu1ll_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu32i");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu32i");
    set_bf_and_test(lv, v3, 1, 2, 32, 1, "BFu9i_BFu1ll_BFu32i");
    set_bf_and_test(lv, v3, 1, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu1ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu32i, BFu9i_BFu1ll_BFu32i)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu32ll");
    set_bf_and_test(lv, v3, 1, 2, 32, 1, "BFu9i_BFu1ll_BFu32ll");
    set_bf_and_test(lv, v3, 1, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu1ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu32ll, BFu9i_BFu1ll_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu33()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu33");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu33");
    set_bf_and_test(lv, v3, 1, 2, 33, 1, "BFu9i_BFu1ll_BFu33");
    set_bf_and_test(lv, v3, 1, 2, 33, hide_ull(1LL<<32), "BFu9i_BFu1ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu33, BFu9i_BFu1ll_BFu33)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu7c");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 2, 7, 1, "BFu9i_BFu1ll_BFu7c");
    set_bf_and_test(lv, v3, 1, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu1ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu7c, BFu9i_BFu1ll_BFu7c)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu7i");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 2, 7, 1, "BFu9i_BFu1ll_BFu7i");
    set_bf_and_test(lv, v3, 1, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu1ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu7i, BFu9i_BFu1ll_BFu7i)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 2, 7, 1, "BFu9i_BFu1ll_BFu7ll");
    set_bf_and_test(lv, v3, 1, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu1ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu7ll, BFu9i_BFu1ll_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu7s");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 2, 7, 1, "BFu9i_BFu1ll_BFu7s");
    set_bf_and_test(lv, v3, 1, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu1ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu7s, BFu9i_BFu1ll_BFu7s)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu8c");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu8c");
    set_bf_and_test(lv, v3, 1, 2, 8, 1, "BFu9i_BFu1ll_BFu8c");
    set_bf_and_test(lv, v3, 1, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu1ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu8c, BFu9i_BFu1ll_BFu8c)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu8i");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu8i");
    set_bf_and_test(lv, v3, 1, 2, 8, 1, "BFu9i_BFu1ll_BFu8i");
    set_bf_and_test(lv, v3, 1, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu1ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu8i, BFu9i_BFu1ll_BFu8i)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu8ll");
    set_bf_and_test(lv, v3, 1, 2, 8, 1, "BFu9i_BFu1ll_BFu8ll");
    set_bf_and_test(lv, v3, 1, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu1ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu8ll, BFu9i_BFu1ll_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu8s");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu8s");
    set_bf_and_test(lv, v3, 1, 2, 8, 1, "BFu9i_BFu1ll_BFu8s");
    set_bf_and_test(lv, v3, 1, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu1ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu8s, BFu9i_BFu1ll_BFu8s)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu9i");
    set_bf_and_test(lv, v3, 1, 2, 9, 1, "BFu9i_BFu1ll_BFu9i");
    set_bf_and_test(lv, v3, 1, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu9i, BFu9i_BFu1ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu9ll");
    set_bf_and_test(lv, v3, 1, 2, 9, 1, "BFu9i_BFu1ll_BFu9ll");
    set_bf_and_test(lv, v3, 1, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu9ll, BFu9i_BFu1ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu1ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu1ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFu1ll_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_BFu9s");
    set_bf_and_test(lv, v3, 1, 2, 9, 1, "BFu9i_BFu1ll_BFu9s");
    set_bf_and_test(lv, v3, 1, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_BFu9s, BFu9i_BFu1ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFu1ll_C()
{
  {
    init_simple_test("BFu9i_BFu1ll_C");
    static STRUCT_IF_C BFu9i_BFu1ll_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_C");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_C");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_C, BFu9i_BFu1ll_C)
//============================================================================



static void Test_BFu9i_BFu1ll_D()
{
  {
    init_simple_test("BFu9i_BFu1ll_D");
    static STRUCT_IF_C BFu9i_BFu1ll_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu1ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_D");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_D");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_D, BFu9i_BFu1ll_D)
//============================================================================



static void Test_BFu9i_BFu1ll_F()
{
  {
    init_simple_test("BFu9i_BFu1ll_F");
    static STRUCT_IF_C BFu9i_BFu1ll_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_F");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_F");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_F, BFu9i_BFu1ll_F)
//============================================================================



static void Test_BFu9i_BFu1ll_I()
{
  {
    init_simple_test("BFu9i_BFu1ll_I");
    static STRUCT_IF_C BFu9i_BFu1ll_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_I");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_I");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_I, BFu9i_BFu1ll_I)
//============================================================================



static void Test_BFu9i_BFu1ll_Ip()
{
  {
    init_simple_test("BFu9i_BFu1ll_Ip");
    static STRUCT_IF_C BFu9i_BFu1ll_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_BFu1ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_Ip");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_Ip, BFu9i_BFu1ll_Ip)
//============================================================================



static void Test_BFu9i_BFu1ll_L()
{
  {
    init_simple_test("BFu9i_BFu1ll_L");
    static STRUCT_IF_C BFu9i_BFu1ll_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu1ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_L");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_L");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_L, BFu9i_BFu1ll_L)
//============================================================================



static void Test_BFu9i_BFu1ll_S()
{
  {
    init_simple_test("BFu9i_BFu1ll_S");
    static STRUCT_IF_C BFu9i_BFu1ll_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_S");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_S");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_S, BFu9i_BFu1ll_S)
//============================================================================



static void Test_BFu9i_BFu1ll_Uc()
{
  {
    init_simple_test("BFu9i_BFu1ll_Uc");
    static STRUCT_IF_C BFu9i_BFu1ll_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_Uc");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_Uc, BFu9i_BFu1ll_Uc)
//============================================================================



static void Test_BFu9i_BFu1ll_Ui()
{
  {
    init_simple_test("BFu9i_BFu1ll_Ui");
    static STRUCT_IF_C BFu9i_BFu1ll_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_Ui");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_Ui, BFu9i_BFu1ll_Ui)
//============================================================================



static void Test_BFu9i_BFu1ll_Ul()
{
  {
    init_simple_test("BFu9i_BFu1ll_Ul");
    static STRUCT_IF_C BFu9i_BFu1ll_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu1ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_Ul");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_Ul, BFu9i_BFu1ll_Ul)
//============================================================================



static void Test_BFu9i_BFu1ll_Us()
{
  {
    init_simple_test("BFu9i_BFu1ll_Us");
    static STRUCT_IF_C BFu9i_BFu1ll_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_Us");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_Us, BFu9i_BFu1ll_Us)
//============================================================================



static void Test_BFu9i_BFu1ll_Vp()
{
  {
    init_simple_test("BFu9i_BFu1ll_Vp");
    static STRUCT_IF_C BFu9i_BFu1ll_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_BFu1ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1ll_Vp");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1ll_Vp, BFu9i_BFu1ll_Vp)
//============================================================================



static void Test_BFu9i_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu1s");
    static STRUCT_IF_C BFu9i_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s, BFu9i_BFu1s)
//============================================================================



static void Test_BFu9i_BFu1s_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu15i");
    static STRUCT_IF_C BFu9i_BFu1s_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu15i");
    set_bf_and_test(lv, v3, 1, 2, 15, 1, "BFu9i_BFu1s_BFu15i");
    set_bf_and_test(lv, v3, 1, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu1s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu15i, BFu9i_BFu1s_BFu15i)
//============================================================================



static void Test_BFu9i_BFu1s_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu1s_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu15ll");
    set_bf_and_test(lv, v3, 1, 2, 15, 1, "BFu9i_BFu1s_BFu15ll");
    set_bf_and_test(lv, v3, 1, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu1s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu15ll, BFu9i_BFu1s_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu1s_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu15s");
    static STRUCT_IF_C BFu9i_BFu1s_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu15s");
    set_bf_and_test(lv, v3, 1, 2, 15, 1, "BFu9i_BFu1s_BFu15s");
    set_bf_and_test(lv, v3, 1, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu1s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu15s, BFu9i_BFu1s_BFu15s)
//============================================================================



static void Test_BFu9i_BFu1s_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu16i");
    static STRUCT_IF_C BFu9i_BFu1s_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu16i");
    set_bf_and_test(lv, v3, 1, 2, 16, 1, "BFu9i_BFu1s_BFu16i");
    set_bf_and_test(lv, v3, 1, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu1s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu16i, BFu9i_BFu1s_BFu16i)
//============================================================================



static void Test_BFu9i_BFu1s_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu1s_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu16ll");
    set_bf_and_test(lv, v3, 1, 2, 16, 1, "BFu9i_BFu1s_BFu16ll");
    set_bf_and_test(lv, v3, 1, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu1s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu16ll, BFu9i_BFu1s_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu1s_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu16s");
    static STRUCT_IF_C BFu9i_BFu1s_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu16s");
    set_bf_and_test(lv, v3, 1, 2, 16, 1, "BFu9i_BFu1s_BFu16s");
    set_bf_and_test(lv, v3, 1, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu1s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu16s, BFu9i_BFu1s_BFu16s)
//============================================================================



static void Test_BFu9i_BFu1s_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu17i");
    static STRUCT_IF_C BFu9i_BFu1s_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu17i");
    set_bf_and_test(lv, v3, 1, 2, 17, 1, "BFu9i_BFu1s_BFu17i");
    set_bf_and_test(lv, v3, 1, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu1s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu17i, BFu9i_BFu1s_BFu17i)
//============================================================================



static void Test_BFu9i_BFu1s_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu1s_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu17ll");
    set_bf_and_test(lv, v3, 1, 2, 17, 1, "BFu9i_BFu1s_BFu17ll");
    set_bf_and_test(lv, v3, 1, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu1s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu17ll, BFu9i_BFu1s_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu1s_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu1c");
    static STRUCT_IF_C BFu9i_BFu1s_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu1c");
    set_bf_and_test(lv, v3, 1, 2, 1, 1, "BFu9i_BFu1s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu1c, BFu9i_BFu1s_BFu1c)
//============================================================================



static void Test_BFu9i_BFu1s_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu1i");
    static STRUCT_IF_C BFu9i_BFu1s_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu1i");
    set_bf_and_test(lv, v3, 1, 2, 1, 1, "BFu9i_BFu1s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu1i, BFu9i_BFu1s_BFu1i)
//============================================================================



static void Test_BFu9i_BFu1s_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu1s_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu1ll");
    set_bf_and_test(lv, v3, 1, 2, 1, 1, "BFu9i_BFu1s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu1ll, BFu9i_BFu1s_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu1s_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu1s");
    static STRUCT_IF_C BFu9i_BFu1s_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu1s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu1s");
    set_bf_and_test(lv, v3, 1, 2, 1, 1, "BFu9i_BFu1s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu1s, BFu9i_BFu1s_BFu1s)
//============================================================================



static void Test_BFu9i_BFu1s_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu31i");
    static STRUCT_IF_C BFu9i_BFu1s_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu31i");
    set_bf_and_test(lv, v3, 1, 2, 31, 1, "BFu9i_BFu1s_BFu31i");
    set_bf_and_test(lv, v3, 1, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu1s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu31i, BFu9i_BFu1s_BFu31i)
//============================================================================



static void Test_BFu9i_BFu1s_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu1s_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu31ll");
    set_bf_and_test(lv, v3, 1, 2, 31, 1, "BFu9i_BFu1s_BFu31ll");
    set_bf_and_test(lv, v3, 1, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu1s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu31ll, BFu9i_BFu1s_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu1s_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu32i");
    static STRUCT_IF_C BFu9i_BFu1s_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu32i");
    set_bf_and_test(lv, v3, 1, 2, 32, 1, "BFu9i_BFu1s_BFu32i");
    set_bf_and_test(lv, v3, 1, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu1s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu32i, BFu9i_BFu1s_BFu32i)
//============================================================================



static void Test_BFu9i_BFu1s_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu1s_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu32ll");
    set_bf_and_test(lv, v3, 1, 2, 32, 1, "BFu9i_BFu1s_BFu32ll");
    set_bf_and_test(lv, v3, 1, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu1s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu32ll, BFu9i_BFu1s_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu1s_BFu33()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu33");
    static STRUCT_IF_C BFu9i_BFu1s_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu33");
    set_bf_and_test(lv, v3, 1, 2, 33, 1, "BFu9i_BFu1s_BFu33");
    set_bf_and_test(lv, v3, 1, 2, 33, hide_ull(1LL<<32), "BFu9i_BFu1s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu33, BFu9i_BFu1s_BFu33)
//============================================================================



static void Test_BFu9i_BFu1s_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu7c");
    static STRUCT_IF_C BFu9i_BFu1s_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu7c");
    set_bf_and_test(lv, v3, 1, 2, 7, 1, "BFu9i_BFu1s_BFu7c");
    set_bf_and_test(lv, v3, 1, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu1s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu7c, BFu9i_BFu1s_BFu7c)
//============================================================================



static void Test_BFu9i_BFu1s_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu7i");
    static STRUCT_IF_C BFu9i_BFu1s_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu7i");
    set_bf_and_test(lv, v3, 1, 2, 7, 1, "BFu9i_BFu1s_BFu7i");
    set_bf_and_test(lv, v3, 1, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu1s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu7i, BFu9i_BFu1s_BFu7i)
//============================================================================



static void Test_BFu9i_BFu1s_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu1s_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 2, 7, 1, "BFu9i_BFu1s_BFu7ll");
    set_bf_and_test(lv, v3, 1, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu1s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu7ll, BFu9i_BFu1s_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu1s_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu7s");
    static STRUCT_IF_C BFu9i_BFu1s_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu7s");
    set_bf_and_test(lv, v3, 1, 2, 7, 1, "BFu9i_BFu1s_BFu7s");
    set_bf_and_test(lv, v3, 1, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu1s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu7s, BFu9i_BFu1s_BFu7s)
//============================================================================



static void Test_BFu9i_BFu1s_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu8c");
    static STRUCT_IF_C BFu9i_BFu1s_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu8c");
    set_bf_and_test(lv, v3, 1, 2, 8, 1, "BFu9i_BFu1s_BFu8c");
    set_bf_and_test(lv, v3, 1, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu1s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu8c, BFu9i_BFu1s_BFu8c)
//============================================================================



static void Test_BFu9i_BFu1s_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu8i");
    static STRUCT_IF_C BFu9i_BFu1s_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu8i");
    set_bf_and_test(lv, v3, 1, 2, 8, 1, "BFu9i_BFu1s_BFu8i");
    set_bf_and_test(lv, v3, 1, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu1s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu8i, BFu9i_BFu1s_BFu8i)
//============================================================================



static void Test_BFu9i_BFu1s_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu1s_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu8ll");
    set_bf_and_test(lv, v3, 1, 2, 8, 1, "BFu9i_BFu1s_BFu8ll");
    set_bf_and_test(lv, v3, 1, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu1s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu8ll, BFu9i_BFu1s_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu1s_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu8s");
    static STRUCT_IF_C BFu9i_BFu1s_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu8s");
    set_bf_and_test(lv, v3, 1, 2, 8, 1, "BFu9i_BFu1s_BFu8s");
    set_bf_and_test(lv, v3, 1, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu1s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu8s, BFu9i_BFu1s_BFu8s)
//============================================================================



static void Test_BFu9i_BFu1s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu9i");
    static STRUCT_IF_C BFu9i_BFu1s_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu9i");
    set_bf_and_test(lv, v3, 1, 2, 9, 1, "BFu9i_BFu1s_BFu9i");
    set_bf_and_test(lv, v3, 1, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu9i, BFu9i_BFu1s_BFu9i)
//============================================================================



static void Test_BFu9i_BFu1s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu1s_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu9ll");
    set_bf_and_test(lv, v3, 1, 2, 9, 1, "BFu9i_BFu1s_BFu9ll");
    set_bf_and_test(lv, v3, 1, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu9ll, BFu9i_BFu1s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu1s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu1s_BFu9s");
    static STRUCT_IF_C BFu9i_BFu1s_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_BFu9s");
    set_bf_and_test(lv, v3, 1, 2, 9, 1, "BFu9i_BFu1s_BFu9s");
    set_bf_and_test(lv, v3, 1, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_BFu9s, BFu9i_BFu1s_BFu9s)
//============================================================================



static void Test_BFu9i_BFu1s_C()
{
  {
    init_simple_test("BFu9i_BFu1s_C");
    static STRUCT_IF_C BFu9i_BFu1s_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1s_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_C");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_C");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_C, BFu9i_BFu1s_C)
//============================================================================



static void Test_BFu9i_BFu1s_D()
{
  {
    init_simple_test("BFu9i_BFu1s_D");
    static STRUCT_IF_C BFu9i_BFu1s_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu1s_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_D");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_D");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_D, BFu9i_BFu1s_D)
//============================================================================



static void Test_BFu9i_BFu1s_F()
{
  {
    init_simple_test("BFu9i_BFu1s_F");
    static STRUCT_IF_C BFu9i_BFu1s_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1s_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_F");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_F");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_F, BFu9i_BFu1s_F)
//============================================================================



static void Test_BFu9i_BFu1s_I()
{
  {
    init_simple_test("BFu9i_BFu1s_I");
    static STRUCT_IF_C BFu9i_BFu1s_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1s_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_I");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_I");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_I, BFu9i_BFu1s_I)
//============================================================================



static void Test_BFu9i_BFu1s_Ip()
{
  {
    init_simple_test("BFu9i_BFu1s_Ip");
    static STRUCT_IF_C BFu9i_BFu1s_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_BFu1s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_Ip");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_Ip");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_Ip, BFu9i_BFu1s_Ip)
//============================================================================



static void Test_BFu9i_BFu1s_L()
{
  {
    init_simple_test("BFu9i_BFu1s_L");
    static STRUCT_IF_C BFu9i_BFu1s_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu1s_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_L");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_L");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_L, BFu9i_BFu1s_L)
//============================================================================



static void Test_BFu9i_BFu1s_S()
{
  {
    init_simple_test("BFu9i_BFu1s_S");
    static STRUCT_IF_C BFu9i_BFu1s_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1s_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_S");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_S");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_S, BFu9i_BFu1s_S)
//============================================================================



static void Test_BFu9i_BFu1s_Uc()
{
  {
    init_simple_test("BFu9i_BFu1s_Uc");
    static STRUCT_IF_C BFu9i_BFu1s_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu1s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_Uc");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_Uc");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_Uc, BFu9i_BFu1s_Uc)
//============================================================================



static void Test_BFu9i_BFu1s_Ui()
{
  {
    init_simple_test("BFu9i_BFu1s_Ui");
    static STRUCT_IF_C BFu9i_BFu1s_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu1s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_Ui");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_Ui");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_Ui, BFu9i_BFu1s_Ui)
//============================================================================



static void Test_BFu9i_BFu1s_Ul()
{
  {
    init_simple_test("BFu9i_BFu1s_Ul");
    static STRUCT_IF_C BFu9i_BFu1s_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu1s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_Ul");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_Ul");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_Ul, BFu9i_BFu1s_Ul)
//============================================================================



static void Test_BFu9i_BFu1s_Us()
{
  {
    init_simple_test("BFu9i_BFu1s_Us");
    static STRUCT_IF_C BFu9i_BFu1s_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu1s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_Us");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_Us");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_Us, BFu9i_BFu1s_Us)
//============================================================================



static void Test_BFu9i_BFu1s_Vp()
{
  {
    init_simple_test("BFu9i_BFu1s_Vp");
    static STRUCT_IF_C BFu9i_BFu1s_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_BFu1s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu1s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu1s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu1s_Vp");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "BFu9i_BFu1s_Vp");
    check_field_offset(lv, v3, 2, "BFu9i_BFu1s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu1s_Vp, BFu9i_BFu1s_Vp)
//============================================================================



static void Test_BFu9i_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu31i");
    static STRUCT_IF_C BFu9i_BFu31i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i, BFu9i_BFu31i)
//============================================================================



static void Test_BFu9i_BFu31i_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu15i");
    static STRUCT_IF_C BFu9i_BFu31i_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "BFu9i_BFu31i_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu31i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu15i, BFu9i_BFu31i_BFu15i)
//============================================================================



static void Test_BFu9i_BFu31i_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu31i_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "BFu9i_BFu31i_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu31i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu15ll, BFu9i_BFu31i_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu31i_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu15s");
    static STRUCT_IF_C BFu9i_BFu31i_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "BFu9i_BFu31i_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu31i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu15s, BFu9i_BFu31i_BFu15s)
//============================================================================



static void Test_BFu9i_BFu31i_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu16i");
    static STRUCT_IF_C BFu9i_BFu31i_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "BFu9i_BFu31i_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu31i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu16i, BFu9i_BFu31i_BFu16i)
//============================================================================



static void Test_BFu9i_BFu31i_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu31i_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "BFu9i_BFu31i_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu31i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu16ll, BFu9i_BFu31i_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu31i_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu16s");
    static STRUCT_IF_C BFu9i_BFu31i_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "BFu9i_BFu31i_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu31i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu16s, BFu9i_BFu31i_BFu16s)
//============================================================================



static void Test_BFu9i_BFu31i_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu17i");
    static STRUCT_IF_C BFu9i_BFu31i_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu31i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "BFu9i_BFu31i_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu31i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu17i, BFu9i_BFu31i_BFu17i)
//============================================================================



static void Test_BFu9i_BFu31i_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu31i_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu31i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "BFu9i_BFu31i_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu31i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu17ll, BFu9i_BFu31i_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu31i_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu1c");
    static STRUCT_IF_C BFu9i_BFu31i_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu1c");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu9i_BFu31i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu1c, BFu9i_BFu31i_BFu1c)
//============================================================================



static void Test_BFu9i_BFu31i_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu1i");
    static STRUCT_IF_C BFu9i_BFu31i_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu1i");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu9i_BFu31i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu1i, BFu9i_BFu31i_BFu1i)
//============================================================================



static void Test_BFu9i_BFu31i_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu31i_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu1ll");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu9i_BFu31i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu1ll, BFu9i_BFu31i_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu31i_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu1s");
    static STRUCT_IF_C BFu9i_BFu31i_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu1s");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu9i_BFu31i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu1s, BFu9i_BFu31i_BFu1s)
//============================================================================



static void Test_BFu9i_BFu31i_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu31i");
    static STRUCT_IF_C BFu9i_BFu31i_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu31i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "BFu9i_BFu31i_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu31i, BFu9i_BFu31i_BFu31i)
//============================================================================



static void Test_BFu9i_BFu31i_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu31i_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu31i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "BFu9i_BFu31i_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu31ll, BFu9i_BFu31i_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu31i_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu32i");
    static STRUCT_IF_C BFu9i_BFu31i_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu31i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "BFu9i_BFu31i_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu31i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu32i, BFu9i_BFu31i_BFu32i)
//============================================================================



static void Test_BFu9i_BFu31i_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu31i_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu31i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "BFu9i_BFu31i_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu31i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu32ll, BFu9i_BFu31i_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu31i_BFu33()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu33");
    static STRUCT_IF_C BFu9i_BFu31i_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu31i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, 1, "BFu9i_BFu31i_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, hide_ull(1LL<<32), "BFu9i_BFu31i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu33, BFu9i_BFu31i_BFu33)
//============================================================================



static void Test_BFu9i_BFu31i_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu7c");
    static STRUCT_IF_C BFu9i_BFu31i_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu9i_BFu31i_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu31i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu7c, BFu9i_BFu31i_BFu7c)
//============================================================================



static void Test_BFu9i_BFu31i_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu7i");
    static STRUCT_IF_C BFu9i_BFu31i_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu9i_BFu31i_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu31i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu7i, BFu9i_BFu31i_BFu7i)
//============================================================================



static void Test_BFu9i_BFu31i_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu31i_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu9i_BFu31i_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu31i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu7ll, BFu9i_BFu31i_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu31i_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu7s");
    static STRUCT_IF_C BFu9i_BFu31i_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu9i_BFu31i_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu31i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu7s, BFu9i_BFu31i_BFu7s)
//============================================================================



static void Test_BFu9i_BFu31i_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu8c");
    static STRUCT_IF_C BFu9i_BFu31i_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu9i_BFu31i_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu31i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu8c, BFu9i_BFu31i_BFu8c)
//============================================================================



static void Test_BFu9i_BFu31i_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu8i");
    static STRUCT_IF_C BFu9i_BFu31i_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu9i_BFu31i_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu31i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu8i, BFu9i_BFu31i_BFu8i)
//============================================================================



static void Test_BFu9i_BFu31i_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu31i_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu9i_BFu31i_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu31i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu8ll, BFu9i_BFu31i_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu31i_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu8s");
    static STRUCT_IF_C BFu9i_BFu31i_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu9i_BFu31i_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu31i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu8s, BFu9i_BFu31i_BFu8s)
//============================================================================



static void Test_BFu9i_BFu31i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu9i");
    static STRUCT_IF_C BFu9i_BFu31i_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "BFu9i_BFu31i_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu9i, BFu9i_BFu31i_BFu9i)
//============================================================================



static void Test_BFu9i_BFu31i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu31i_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "BFu9i_BFu31i_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu9ll, BFu9i_BFu31i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu31i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu31i_BFu9s");
    static STRUCT_IF_C BFu9i_BFu31i_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "BFu9i_BFu31i_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_BFu9s, BFu9i_BFu31i_BFu9s)
//============================================================================



static void Test_BFu9i_BFu31i_C()
{
  {
    init_simple_test("BFu9i_BFu31i_C");
    static STRUCT_IF_C BFu9i_BFu31i_C lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_C");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_C");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_C");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_C, BFu9i_BFu31i_C)
//============================================================================



static void Test_BFu9i_BFu31i_D()
{
  {
    init_simple_test("BFu9i_BFu31i_D");
    static STRUCT_IF_C BFu9i_BFu31i_D lv;
    check2(sizeof(lv), 13, "sizeof(BFu9i_BFu31i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_D");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_D");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_D");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_D, BFu9i_BFu31i_D)
//============================================================================



static void Test_BFu9i_BFu31i_F()
{
  {
    init_simple_test("BFu9i_BFu31i_F");
    static STRUCT_IF_C BFu9i_BFu31i_F lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu31i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_F");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_F");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_F");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_F, BFu9i_BFu31i_F)
//============================================================================



static void Test_BFu9i_BFu31i_I()
{
  {
    init_simple_test("BFu9i_BFu31i_I");
    static STRUCT_IF_C BFu9i_BFu31i_I lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu31i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_I");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_I");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_I");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_I, BFu9i_BFu31i_I)
//============================================================================



static void Test_BFu9i_BFu31i_Ip()
{
  {
    init_simple_test("BFu9i_BFu31i_Ip");
    static STRUCT_IF_C BFu9i_BFu31i_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu9i_BFu31i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_Ip");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_Ip, BFu9i_BFu31i_Ip)
//============================================================================



static void Test_BFu9i_BFu31i_L()
{
  {
    init_simple_test("BFu9i_BFu31i_L");
    static STRUCT_IF_C BFu9i_BFu31i_L lv;
    check2(sizeof(lv), 13, "sizeof(BFu9i_BFu31i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_L");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_L");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_L");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_L, BFu9i_BFu31i_L)
//============================================================================



static void Test_BFu9i_BFu31i_S()
{
  {
    init_simple_test("BFu9i_BFu31i_S");
    static STRUCT_IF_C BFu9i_BFu31i_S lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_S");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_S");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_S");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_S, BFu9i_BFu31i_S)
//============================================================================



static void Test_BFu9i_BFu31i_Uc()
{
  {
    init_simple_test("BFu9i_BFu31i_Uc");
    static STRUCT_IF_C BFu9i_BFu31i_Uc lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_Uc");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_Uc, BFu9i_BFu31i_Uc)
//============================================================================



static void Test_BFu9i_BFu31i_Ui()
{
  {
    init_simple_test("BFu9i_BFu31i_Ui");
    static STRUCT_IF_C BFu9i_BFu31i_Ui lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu31i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_Ui");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_Ui, BFu9i_BFu31i_Ui)
//============================================================================



static void Test_BFu9i_BFu31i_Ul()
{
  {
    init_simple_test("BFu9i_BFu31i_Ul");
    static STRUCT_IF_C BFu9i_BFu31i_Ul lv;
    check2(sizeof(lv), 13, "sizeof(BFu9i_BFu31i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_Ul");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_Ul, BFu9i_BFu31i_Ul)
//============================================================================



static void Test_BFu9i_BFu31i_Us()
{
  {
    init_simple_test("BFu9i_BFu31i_Us");
    static STRUCT_IF_C BFu9i_BFu31i_Us lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_Us");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_Us");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_Us");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_Us, BFu9i_BFu31i_Us)
//============================================================================



static void Test_BFu9i_BFu31i_Vp()
{
  {
    init_simple_test("BFu9i_BFu31i_Vp");
    static STRUCT_IF_C BFu9i_BFu31i_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu9i_BFu31i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31i_Vp");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31i_Vp, BFu9i_BFu31i_Vp)
//============================================================================



static void Test_BFu9i_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu31ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll, BFu9i_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu15i");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "BFu9i_BFu31ll_BFu15i");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu31ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu15i, BFu9i_BFu31ll_BFu15i)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "BFu9i_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu31ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu15ll, BFu9i_BFu31ll_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu15s");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, 1, "BFu9i_BFu31ll_BFu15s");
    set_bf_and_test(lv, v3, 5, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu31ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu15s, BFu9i_BFu31ll_BFu15s)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu16i");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "BFu9i_BFu31ll_BFu16i");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu31ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu16i, BFu9i_BFu31ll_BFu16i)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "BFu9i_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu31ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu16ll, BFu9i_BFu31ll_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu16s");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, 1, "BFu9i_BFu31ll_BFu16s");
    set_bf_and_test(lv, v3, 5, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu31ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu16s, BFu9i_BFu31ll_BFu16s)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu17i");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu31ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "BFu9i_BFu31ll_BFu17i");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu31ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu17i, BFu9i_BFu31ll_BFu17i)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu31ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, 1, "BFu9i_BFu31ll_BFu17ll");
    set_bf_and_test(lv, v3, 5, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu31ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu17ll, BFu9i_BFu31ll_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu1c");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu1c");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu9i_BFu31ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu1c, BFu9i_BFu31ll_BFu1c)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu1i");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu1i");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu9i_BFu31ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu1i, BFu9i_BFu31ll_BFu1i)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu1ll");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu9i_BFu31ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu1ll, BFu9i_BFu31ll_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu1s");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu1s");
    set_bf_and_test(lv, v3, 5, 0, 1, 1, "BFu9i_BFu31ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu1s, BFu9i_BFu31ll_BFu1s)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu31i");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu31ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "BFu9i_BFu31ll_BFu31i");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu31i, BFu9i_BFu31ll_BFu31i)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu31ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, 1, "BFu9i_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v3, 5, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu31ll, BFu9i_BFu31ll_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu32i");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu31ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "BFu9i_BFu31ll_BFu32i");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu31ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu32i, BFu9i_BFu31ll_BFu32i)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu31ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, 1, "BFu9i_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v3, 5, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu31ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu32ll, BFu9i_BFu31ll_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu33()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu33");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu31ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, 1, "BFu9i_BFu31ll_BFu33");
    set_bf_and_test(lv, v3, 5, 0, 33, hide_ull(1LL<<32), "BFu9i_BFu31ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu33, BFu9i_BFu31ll_BFu33)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu7c");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu9i_BFu31ll_BFu7c");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu31ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu7c, BFu9i_BFu31ll_BFu7c)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu7i");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu9i_BFu31ll_BFu7i");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu31ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu7i, BFu9i_BFu31ll_BFu7i)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu9i_BFu31ll_BFu7ll");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu31ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu7ll, BFu9i_BFu31ll_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu7s");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, 1, "BFu9i_BFu31ll_BFu7s");
    set_bf_and_test(lv, v3, 5, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu31ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu7s, BFu9i_BFu31ll_BFu7s)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu8c");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu9i_BFu31ll_BFu8c");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu31ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu8c, BFu9i_BFu31ll_BFu8c)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu8i");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu9i_BFu31ll_BFu8i");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu31ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu8i, BFu9i_BFu31ll_BFu8i)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu9i_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu31ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu8ll, BFu9i_BFu31ll_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu8s");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, 1, "BFu9i_BFu31ll_BFu8s");
    set_bf_and_test(lv, v3, 5, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu31ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu8s, BFu9i_BFu31ll_BFu8s)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "BFu9i_BFu31ll_BFu9i");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu9i, BFu9i_BFu31ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "BFu9i_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu9ll, BFu9i_BFu31ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu31ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu31ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFu31ll_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, 1, "BFu9i_BFu31ll_BFu9s");
    set_bf_and_test(lv, v3, 5, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_BFu9s, BFu9i_BFu31ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFu31ll_C()
{
  {
    init_simple_test("BFu9i_BFu31ll_C");
    static STRUCT_IF_C BFu9i_BFu31ll_C lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_C");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_C");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_C");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_C, BFu9i_BFu31ll_C)
//============================================================================



static void Test_BFu9i_BFu31ll_D()
{
  {
    init_simple_test("BFu9i_BFu31ll_D");
    static STRUCT_IF_C BFu9i_BFu31ll_D lv;
    check2(sizeof(lv), 13, "sizeof(BFu9i_BFu31ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_D");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_D");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_D");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_D, BFu9i_BFu31ll_D)
//============================================================================



static void Test_BFu9i_BFu31ll_F()
{
  {
    init_simple_test("BFu9i_BFu31ll_F");
    static STRUCT_IF_C BFu9i_BFu31ll_F lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu31ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_F");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_F");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_F");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_F, BFu9i_BFu31ll_F)
//============================================================================



static void Test_BFu9i_BFu31ll_I()
{
  {
    init_simple_test("BFu9i_BFu31ll_I");
    static STRUCT_IF_C BFu9i_BFu31ll_I lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu31ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_I");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_I");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_I");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_I, BFu9i_BFu31ll_I)
//============================================================================



static void Test_BFu9i_BFu31ll_Ip()
{
  {
    init_simple_test("BFu9i_BFu31ll_Ip");
    static STRUCT_IF_C BFu9i_BFu31ll_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu9i_BFu31ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_Ip");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_Ip, BFu9i_BFu31ll_Ip)
//============================================================================



static void Test_BFu9i_BFu31ll_L()
{
  {
    init_simple_test("BFu9i_BFu31ll_L");
    static STRUCT_IF_C BFu9i_BFu31ll_L lv;
    check2(sizeof(lv), 13, "sizeof(BFu9i_BFu31ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_L");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_L");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_L");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_L, BFu9i_BFu31ll_L)
//============================================================================



static void Test_BFu9i_BFu31ll_S()
{
  {
    init_simple_test("BFu9i_BFu31ll_S");
    static STRUCT_IF_C BFu9i_BFu31ll_S lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_S");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_S");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_S");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_S, BFu9i_BFu31ll_S)
//============================================================================



static void Test_BFu9i_BFu31ll_Uc()
{
  {
    init_simple_test("BFu9i_BFu31ll_Uc");
    static STRUCT_IF_C BFu9i_BFu31ll_Uc lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu31ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_Uc");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_Uc, BFu9i_BFu31ll_Uc)
//============================================================================



static void Test_BFu9i_BFu31ll_Ui()
{
  {
    init_simple_test("BFu9i_BFu31ll_Ui");
    static STRUCT_IF_C BFu9i_BFu31ll_Ui lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu31ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_Ui");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_Ui, BFu9i_BFu31ll_Ui)
//============================================================================



static void Test_BFu9i_BFu31ll_Ul()
{
  {
    init_simple_test("BFu9i_BFu31ll_Ul");
    static STRUCT_IF_C BFu9i_BFu31ll_Ul lv;
    check2(sizeof(lv), 13, "sizeof(BFu9i_BFu31ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_Ul");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_Ul, BFu9i_BFu31ll_Ul)
//============================================================================



static void Test_BFu9i_BFu31ll_Us()
{
  {
    init_simple_test("BFu9i_BFu31ll_Us");
    static STRUCT_IF_C BFu9i_BFu31ll_Us lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu31ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_Us");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_Us, BFu9i_BFu31ll_Us)
//============================================================================



static void Test_BFu9i_BFu31ll_Vp()
{
  {
    init_simple_test("BFu9i_BFu31ll_Vp");
    static STRUCT_IF_C BFu9i_BFu31ll_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu9i_BFu31ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu31ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu31ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu31ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "BFu9i_BFu31ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu31ll_Vp");
    check_field_offset(lv, v3, 5, "BFu9i_BFu31ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu31ll_Vp, BFu9i_BFu31ll_Vp)
//============================================================================



static void Test_BFu9i_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu32i");
    static STRUCT_IF_C BFu9i_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i, BFu9i_BFu32i)
//============================================================================



static void Test_BFu9i_BFu32i_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu15i");
    static STRUCT_IF_C BFu9i_BFu32i_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu15i");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "BFu9i_BFu32i_BFu15i");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu32i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu15i, BFu9i_BFu32i_BFu15i)
//============================================================================



static void Test_BFu9i_BFu32i_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu32i_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu15ll");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "BFu9i_BFu32i_BFu15ll");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu32i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu15ll, BFu9i_BFu32i_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu32i_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu15s");
    static STRUCT_IF_C BFu9i_BFu32i_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu15s");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "BFu9i_BFu32i_BFu15s");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu32i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu15s, BFu9i_BFu32i_BFu15s)
//============================================================================



static void Test_BFu9i_BFu32i_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu16i");
    static STRUCT_IF_C BFu9i_BFu32i_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu32i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "BFu9i_BFu32i_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu32i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu16i, BFu9i_BFu32i_BFu16i)
//============================================================================



static void Test_BFu9i_BFu32i_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu32i_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu32i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "BFu9i_BFu32i_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu32i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu16ll, BFu9i_BFu32i_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu32i_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu16s");
    static STRUCT_IF_C BFu9i_BFu32i_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu32i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "BFu9i_BFu32i_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu32i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu16s, BFu9i_BFu32i_BFu16s)
//============================================================================



static void Test_BFu9i_BFu32i_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu17i");
    static STRUCT_IF_C BFu9i_BFu32i_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu32i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "BFu9i_BFu32i_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu32i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu17i, BFu9i_BFu32i_BFu17i)
//============================================================================



static void Test_BFu9i_BFu32i_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu32i_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu32i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "BFu9i_BFu32i_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu32i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu17ll, BFu9i_BFu32i_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu32i_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu1c");
    static STRUCT_IF_C BFu9i_BFu32i_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu1c");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "BFu9i_BFu32i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu1c, BFu9i_BFu32i_BFu1c)
//============================================================================



static void Test_BFu9i_BFu32i_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu1i");
    static STRUCT_IF_C BFu9i_BFu32i_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu1i");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "BFu9i_BFu32i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu1i, BFu9i_BFu32i_BFu1i)
//============================================================================



static void Test_BFu9i_BFu32i_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu32i_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu1ll");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "BFu9i_BFu32i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu1ll, BFu9i_BFu32i_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu32i_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu1s");
    static STRUCT_IF_C BFu9i_BFu32i_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu1s");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "BFu9i_BFu32i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu1s, BFu9i_BFu32i_BFu1s)
//============================================================================



static void Test_BFu9i_BFu32i_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu31i");
    static STRUCT_IF_C BFu9i_BFu32i_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu32i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu31i");
    set_bf_and_test(lv, v3, 5, 1, 31, 1, "BFu9i_BFu32i_BFu31i");
    set_bf_and_test(lv, v3, 5, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu32i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu31i, BFu9i_BFu32i_BFu31i)
//============================================================================



static void Test_BFu9i_BFu32i_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu32i_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu32i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu31ll");
    set_bf_and_test(lv, v3, 5, 1, 31, 1, "BFu9i_BFu32i_BFu31ll");
    set_bf_and_test(lv, v3, 5, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu32i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu31ll, BFu9i_BFu32i_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu32i_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu32i");
    static STRUCT_IF_C BFu9i_BFu32i_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu32i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "BFu9i_BFu32i_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu32i, BFu9i_BFu32i_BFu32i)
//============================================================================



static void Test_BFu9i_BFu32i_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu32i_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu32i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "BFu9i_BFu32i_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu32ll, BFu9i_BFu32i_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu32i_BFu33()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu33");
    static STRUCT_IF_C BFu9i_BFu32i_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu32i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, 1, "BFu9i_BFu32i_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu32i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu33, BFu9i_BFu32i_BFu33)
//============================================================================



static void Test_BFu9i_BFu32i_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu7c");
    static STRUCT_IF_C BFu9i_BFu32i_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu7c");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "BFu9i_BFu32i_BFu7c");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu32i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu7c, BFu9i_BFu32i_BFu7c)
//============================================================================



static void Test_BFu9i_BFu32i_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu7i");
    static STRUCT_IF_C BFu9i_BFu32i_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu7i");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "BFu9i_BFu32i_BFu7i");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu32i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu7i, BFu9i_BFu32i_BFu7i)
//============================================================================



static void Test_BFu9i_BFu32i_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu32i_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu7ll");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "BFu9i_BFu32i_BFu7ll");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu32i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu7ll, BFu9i_BFu32i_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu32i_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu7s");
    static STRUCT_IF_C BFu9i_BFu32i_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu7s");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "BFu9i_BFu32i_BFu7s");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu32i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu7s, BFu9i_BFu32i_BFu7s)
//============================================================================



static void Test_BFu9i_BFu32i_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu8c");
    static STRUCT_IF_C BFu9i_BFu32i_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu8c");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "BFu9i_BFu32i_BFu8c");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu32i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu8c, BFu9i_BFu32i_BFu8c)
//============================================================================



static void Test_BFu9i_BFu32i_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu8i");
    static STRUCT_IF_C BFu9i_BFu32i_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu8i");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "BFu9i_BFu32i_BFu8i");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu32i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu8i, BFu9i_BFu32i_BFu8i)
//============================================================================



static void Test_BFu9i_BFu32i_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu32i_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu8ll");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "BFu9i_BFu32i_BFu8ll");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu32i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu8ll, BFu9i_BFu32i_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu32i_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu8s");
    static STRUCT_IF_C BFu9i_BFu32i_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu8s");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "BFu9i_BFu32i_BFu8s");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu32i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu8s, BFu9i_BFu32i_BFu8s)
//============================================================================



static void Test_BFu9i_BFu32i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu9i");
    static STRUCT_IF_C BFu9i_BFu32i_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu9i");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "BFu9i_BFu32i_BFu9i");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu9i, BFu9i_BFu32i_BFu9i)
//============================================================================



static void Test_BFu9i_BFu32i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu32i_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu9ll");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "BFu9i_BFu32i_BFu9ll");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu9ll, BFu9i_BFu32i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu32i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu32i_BFu9s");
    static STRUCT_IF_C BFu9i_BFu32i_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_BFu9s");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "BFu9i_BFu32i_BFu9s");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_BFu9s, BFu9i_BFu32i_BFu9s)
//============================================================================



static void Test_BFu9i_BFu32i_C()
{
  {
    init_simple_test("BFu9i_BFu32i_C");
    static STRUCT_IF_C BFu9i_BFu32i_C lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_C");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_C");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_C");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_C, BFu9i_BFu32i_C)
//============================================================================



static void Test_BFu9i_BFu32i_D()
{
  {
    init_simple_test("BFu9i_BFu32i_D");
    static STRUCT_IF_C BFu9i_BFu32i_D lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_BFu32i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_D");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_D");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_D");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_D, BFu9i_BFu32i_D)
//============================================================================



static void Test_BFu9i_BFu32i_F()
{
  {
    init_simple_test("BFu9i_BFu32i_F");
    static STRUCT_IF_C BFu9i_BFu32i_F lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu32i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_F");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_F");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_F");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_F, BFu9i_BFu32i_F)
//============================================================================



static void Test_BFu9i_BFu32i_I()
{
  {
    init_simple_test("BFu9i_BFu32i_I");
    static STRUCT_IF_C BFu9i_BFu32i_I lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu32i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_I");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_I");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_I");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_I, BFu9i_BFu32i_I)
//============================================================================



static void Test_BFu9i_BFu32i_Ip()
{
  {
    init_simple_test("BFu9i_BFu32i_Ip");
    static STRUCT_IF_C BFu9i_BFu32i_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_BFu32i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_Ip");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_Ip, BFu9i_BFu32i_Ip)
//============================================================================



static void Test_BFu9i_BFu32i_L()
{
  {
    init_simple_test("BFu9i_BFu32i_L");
    static STRUCT_IF_C BFu9i_BFu32i_L lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_BFu32i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_L");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_L");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_L");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_L, BFu9i_BFu32i_L)
//============================================================================



static void Test_BFu9i_BFu32i_S()
{
  {
    init_simple_test("BFu9i_BFu32i_S");
    static STRUCT_IF_C BFu9i_BFu32i_S lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu32i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_S");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_S");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_S");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_S, BFu9i_BFu32i_S)
//============================================================================



static void Test_BFu9i_BFu32i_Uc()
{
  {
    init_simple_test("BFu9i_BFu32i_Uc");
    static STRUCT_IF_C BFu9i_BFu32i_Uc lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_Uc");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_Uc, BFu9i_BFu32i_Uc)
//============================================================================



static void Test_BFu9i_BFu32i_Ui()
{
  {
    init_simple_test("BFu9i_BFu32i_Ui");
    static STRUCT_IF_C BFu9i_BFu32i_Ui lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu32i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_Ui");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_Ui, BFu9i_BFu32i_Ui)
//============================================================================



static void Test_BFu9i_BFu32i_Ul()
{
  {
    init_simple_test("BFu9i_BFu32i_Ul");
    static STRUCT_IF_C BFu9i_BFu32i_Ul lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_BFu32i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_Ul");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_Ul, BFu9i_BFu32i_Ul)
//============================================================================



static void Test_BFu9i_BFu32i_Us()
{
  {
    init_simple_test("BFu9i_BFu32i_Us");
    static STRUCT_IF_C BFu9i_BFu32i_Us lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu32i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_Us");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_Us");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_Us");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_Us, BFu9i_BFu32i_Us)
//============================================================================



static void Test_BFu9i_BFu32i_Vp()
{
  {
    init_simple_test("BFu9i_BFu32i_Vp");
    static STRUCT_IF_C BFu9i_BFu32i_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_BFu32i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32i_Vp");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32i_Vp, BFu9i_BFu32i_Vp)
//============================================================================



static void Test_BFu9i_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll, BFu9i_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu15i");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu15i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu15i");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "BFu9i_BFu32ll_BFu15i");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu32ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu15i, BFu9i_BFu32ll_BFu15i)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu15ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "BFu9i_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu32ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu15ll, BFu9i_BFu32ll_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu15s");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu15s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu15s");
    set_bf_and_test(lv, v3, 5, 1, 15, 1, "BFu9i_BFu32ll_BFu15s");
    set_bf_and_test(lv, v3, 5, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu32ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu15s, BFu9i_BFu32ll_BFu15s)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu16i");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu32ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "BFu9i_BFu32ll_BFu16i");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu32ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu16i, BFu9i_BFu32ll_BFu16i)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu32ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "BFu9i_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu32ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu16ll, BFu9i_BFu32ll_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu16s");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu32ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, 1, "BFu9i_BFu32ll_BFu16s");
    set_bf_and_test(lv, v3, 5, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu32ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu16s, BFu9i_BFu32ll_BFu16s)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu17i");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu32ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "BFu9i_BFu32ll_BFu17i");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu32ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu17i, BFu9i_BFu32ll_BFu17i)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu32ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, 1, "BFu9i_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v3, 5, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu32ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu17ll, BFu9i_BFu32ll_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu1c");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu1c");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "BFu9i_BFu32ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu1c, BFu9i_BFu32ll_BFu1c)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu1i");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu1i");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "BFu9i_BFu32ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu1i, BFu9i_BFu32ll_BFu1i)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu1ll");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "BFu9i_BFu32ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu1ll, BFu9i_BFu32ll_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu1s");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu1s");
    set_bf_and_test(lv, v3, 5, 1, 1, 1, "BFu9i_BFu32ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu1s, BFu9i_BFu32ll_BFu1s)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu31i");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu31i lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu32ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu31i");
    set_bf_and_test(lv, v3, 5, 1, 31, 1, "BFu9i_BFu32ll_BFu31i");
    set_bf_and_test(lv, v3, 5, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu32ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu31i, BFu9i_BFu32ll_BFu31i)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu31ll lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_BFu32ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v3, 5, 1, 31, 1, "BFu9i_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v3, 5, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu32ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu31ll, BFu9i_BFu32ll_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu32i");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu32ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "BFu9i_BFu32ll_BFu32i");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu32i, BFu9i_BFu32ll_BFu32i)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu32ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, 1, "BFu9i_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v3, 5, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu32ll, BFu9i_BFu32ll_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu33()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu33");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu32ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, 1, "BFu9i_BFu32ll_BFu33");
    set_bf_and_test(lv, v3, 5, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu32ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu33, BFu9i_BFu32ll_BFu33)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu7c");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu7c lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu7c");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "BFu9i_BFu32ll_BFu7c");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu32ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu7c, BFu9i_BFu32ll_BFu7c)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu7i");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu7i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu7i");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "BFu9i_BFu32ll_BFu7i");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu32ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu7i, BFu9i_BFu32ll_BFu7i)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu7ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu7ll");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "BFu9i_BFu32ll_BFu7ll");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu32ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu7ll, BFu9i_BFu32ll_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu7s");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu7s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu32ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu7s");
    set_bf_and_test(lv, v3, 5, 1, 7, 1, "BFu9i_BFu32ll_BFu7s");
    set_bf_and_test(lv, v3, 5, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu32ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu7s, BFu9i_BFu32ll_BFu7s)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu8c");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu8c");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "BFu9i_BFu32ll_BFu8c");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu32ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu8c, BFu9i_BFu32ll_BFu8c)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu8i");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu8i");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "BFu9i_BFu32ll_BFu8i");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu32ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu8i, BFu9i_BFu32ll_BFu8i)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu8ll");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "BFu9i_BFu32ll_BFu8ll");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu32ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu8ll, BFu9i_BFu32ll_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu8s");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu8s");
    set_bf_and_test(lv, v3, 5, 1, 8, 1, "BFu9i_BFu32ll_BFu8s");
    set_bf_and_test(lv, v3, 5, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu32ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu8s, BFu9i_BFu32ll_BFu8s)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu9i");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "BFu9i_BFu32ll_BFu9i");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu9i, BFu9i_BFu32ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu9ll");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "BFu9i_BFu32ll_BFu9ll");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu9ll, BFu9i_BFu32ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu32ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu32ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFu32ll_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_BFu9s");
    set_bf_and_test(lv, v3, 5, 1, 9, 1, "BFu9i_BFu32ll_BFu9s");
    set_bf_and_test(lv, v3, 5, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_BFu9s, BFu9i_BFu32ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFu32ll_C()
{
  {
    init_simple_test("BFu9i_BFu32ll_C");
    static STRUCT_IF_C BFu9i_BFu32ll_C lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_C");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_C");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_C");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_C, BFu9i_BFu32ll_C)
//============================================================================



static void Test_BFu9i_BFu32ll_D()
{
  {
    init_simple_test("BFu9i_BFu32ll_D");
    static STRUCT_IF_C BFu9i_BFu32ll_D lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_BFu32ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_D");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_D");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_D");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_D, BFu9i_BFu32ll_D)
//============================================================================



static void Test_BFu9i_BFu32ll_F()
{
  {
    init_simple_test("BFu9i_BFu32ll_F");
    static STRUCT_IF_C BFu9i_BFu32ll_F lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu32ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_F");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_F");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_F");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_F, BFu9i_BFu32ll_F)
//============================================================================



static void Test_BFu9i_BFu32ll_I()
{
  {
    init_simple_test("BFu9i_BFu32ll_I");
    static STRUCT_IF_C BFu9i_BFu32ll_I lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu32ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_I");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_I");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_I");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_I, BFu9i_BFu32ll_I)
//============================================================================



static void Test_BFu9i_BFu32ll_Ip()
{
  {
    init_simple_test("BFu9i_BFu32ll_Ip");
    static STRUCT_IF_C BFu9i_BFu32ll_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_BFu32ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_Ip");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_Ip, BFu9i_BFu32ll_Ip)
//============================================================================



static void Test_BFu9i_BFu32ll_L()
{
  {
    init_simple_test("BFu9i_BFu32ll_L");
    static STRUCT_IF_C BFu9i_BFu32ll_L lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_BFu32ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_L");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_L");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_L");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_L, BFu9i_BFu32ll_L)
//============================================================================



static void Test_BFu9i_BFu32ll_S()
{
  {
    init_simple_test("BFu9i_BFu32ll_S");
    static STRUCT_IF_C BFu9i_BFu32ll_S lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu32ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_S");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_S");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_S");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_S, BFu9i_BFu32ll_S)
//============================================================================



static void Test_BFu9i_BFu32ll_Uc()
{
  {
    init_simple_test("BFu9i_BFu32ll_Uc");
    static STRUCT_IF_C BFu9i_BFu32ll_Uc lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu32ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_Uc");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_Uc, BFu9i_BFu32ll_Uc)
//============================================================================



static void Test_BFu9i_BFu32ll_Ui()
{
  {
    init_simple_test("BFu9i_BFu32ll_Ui");
    static STRUCT_IF_C BFu9i_BFu32ll_Ui lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu32ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_Ui");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_Ui, BFu9i_BFu32ll_Ui)
//============================================================================



static void Test_BFu9i_BFu32ll_Ul()
{
  {
    init_simple_test("BFu9i_BFu32ll_Ul");
    static STRUCT_IF_C BFu9i_BFu32ll_Ul lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_BFu32ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_Ul");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_Ul, BFu9i_BFu32ll_Ul)
//============================================================================



static void Test_BFu9i_BFu32ll_Us()
{
  {
    init_simple_test("BFu9i_BFu32ll_Us");
    static STRUCT_IF_C BFu9i_BFu32ll_Us lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu32ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_Us");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_Us, BFu9i_BFu32ll_Us)
//============================================================================



static void Test_BFu9i_BFu32ll_Vp()
{
  {
    init_simple_test("BFu9i_BFu32ll_Vp");
    static STRUCT_IF_C BFu9i_BFu32ll_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_BFu32ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu32ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu32ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu32ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "BFu9i_BFu32ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu32ll_Vp");
    check_field_offset(lv, v3, 6, "BFu9i_BFu32ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu32ll_Vp, BFu9i_BFu32ll_Vp)
//============================================================================



static void Test_BFu9i_BFu33()
{
  {
    init_simple_test("BFu9i_BFu33");
    static STRUCT_IF_C BFu9i_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33, BFu9i_BFu33)
//============================================================================



static void Test_BFu9i_BFu33_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu33_BFu15i");
    static STRUCT_IF_C BFu9i_BFu33_BFu15i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu33_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu15i");
    set_bf_and_test(lv, v3, 5, 2, 15, 1, "BFu9i_BFu33_BFu15i");
    set_bf_and_test(lv, v3, 5, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu33_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu15i, BFu9i_BFu33_BFu15i)
//============================================================================



static void Test_BFu9i_BFu33_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu33_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu33_BFu15ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu33_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu15ll");
    set_bf_and_test(lv, v3, 5, 2, 15, 1, "BFu9i_BFu33_BFu15ll");
    set_bf_and_test(lv, v3, 5, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu33_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu15ll, BFu9i_BFu33_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu33_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu33_BFu15s");
    static STRUCT_IF_C BFu9i_BFu33_BFu15s lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu33_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu15s");
    set_bf_and_test(lv, v3, 5, 2, 15, 1, "BFu9i_BFu33_BFu15s");
    set_bf_and_test(lv, v3, 5, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu33_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu15s, BFu9i_BFu33_BFu15s)
//============================================================================



static void Test_BFu9i_BFu33_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu33_BFu16i");
    static STRUCT_IF_C BFu9i_BFu33_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu33_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu16i");
    set_bf_and_test(lv, v3, 5, 2, 16, 1, "BFu9i_BFu33_BFu16i");
    set_bf_and_test(lv, v3, 5, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu33_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu16i, BFu9i_BFu33_BFu16i)
//============================================================================



static void Test_BFu9i_BFu33_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu33_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu33_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu33_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu16ll");
    set_bf_and_test(lv, v3, 5, 2, 16, 1, "BFu9i_BFu33_BFu16ll");
    set_bf_and_test(lv, v3, 5, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu33_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu16ll, BFu9i_BFu33_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu33_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu33_BFu16s");
    static STRUCT_IF_C BFu9i_BFu33_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu33_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu16s");
    set_bf_and_test(lv, v3, 5, 2, 16, 1, "BFu9i_BFu33_BFu16s");
    set_bf_and_test(lv, v3, 5, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu33_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu16s, BFu9i_BFu33_BFu16s)
//============================================================================



static void Test_BFu9i_BFu33_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu33_BFu17i");
    static STRUCT_IF_C BFu9i_BFu33_BFu17i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu33_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu17i");
    set_bf_and_test(lv, v3, 5, 2, 17, 1, "BFu9i_BFu33_BFu17i");
    set_bf_and_test(lv, v3, 5, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu33_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu17i, BFu9i_BFu33_BFu17i)
//============================================================================



static void Test_BFu9i_BFu33_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu33_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu33_BFu17ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu33_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu17ll");
    set_bf_and_test(lv, v3, 5, 2, 17, 1, "BFu9i_BFu33_BFu17ll");
    set_bf_and_test(lv, v3, 5, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu33_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu17ll, BFu9i_BFu33_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu33_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu33_BFu1c");
    static STRUCT_IF_C BFu9i_BFu33_BFu1c lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu33_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu1c");
    set_bf_and_test(lv, v3, 5, 2, 1, 1, "BFu9i_BFu33_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu1c, BFu9i_BFu33_BFu1c)
//============================================================================



static void Test_BFu9i_BFu33_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu33_BFu1i");
    static STRUCT_IF_C BFu9i_BFu33_BFu1i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu33_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu1i");
    set_bf_and_test(lv, v3, 5, 2, 1, 1, "BFu9i_BFu33_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu1i, BFu9i_BFu33_BFu1i)
//============================================================================



static void Test_BFu9i_BFu33_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu33_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu33_BFu1ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu33_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu1ll");
    set_bf_and_test(lv, v3, 5, 2, 1, 1, "BFu9i_BFu33_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu1ll, BFu9i_BFu33_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu33_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu33_BFu1s");
    static STRUCT_IF_C BFu9i_BFu33_BFu1s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu33_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu1s");
    set_bf_and_test(lv, v3, 5, 2, 1, 1, "BFu9i_BFu33_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu1s, BFu9i_BFu33_BFu1s)
//============================================================================



static void Test_BFu9i_BFu33_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu33_BFu31i");
    static STRUCT_IF_C BFu9i_BFu33_BFu31i lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu33_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu31i");
    set_bf_and_test(lv, v3, 5, 2, 31, 1, "BFu9i_BFu33_BFu31i");
    set_bf_and_test(lv, v3, 5, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu33_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu31i, BFu9i_BFu33_BFu31i)
//============================================================================



static void Test_BFu9i_BFu33_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu33_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu33_BFu31ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu33_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu31ll");
    set_bf_and_test(lv, v3, 5, 2, 31, 1, "BFu9i_BFu33_BFu31ll");
    set_bf_and_test(lv, v3, 5, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu33_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu31ll, BFu9i_BFu33_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu33_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu33_BFu32i");
    static STRUCT_IF_C BFu9i_BFu33_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu33_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu32i");
    set_bf_and_test(lv, v3, 5, 2, 32, 1, "BFu9i_BFu33_BFu32i");
    set_bf_and_test(lv, v3, 5, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu33_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu32i, BFu9i_BFu33_BFu32i)
//============================================================================



static void Test_BFu9i_BFu33_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu33_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu33_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu33_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu32ll");
    set_bf_and_test(lv, v3, 5, 2, 32, 1, "BFu9i_BFu33_BFu32ll");
    set_bf_and_test(lv, v3, 5, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu33_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu32ll, BFu9i_BFu33_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu33_BFu33()
{
  {
    init_simple_test("BFu9i_BFu33_BFu33");
    static STRUCT_IF_C BFu9i_BFu33_BFu33 lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu33_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu33");
    set_bf_and_test(lv, v3, 5, 2, 33, 1, "BFu9i_BFu33_BFu33");
    set_bf_and_test(lv, v3, 5, 2, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu33, BFu9i_BFu33_BFu33)
//============================================================================



static void Test_BFu9i_BFu33_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu33_BFu7c");
    static STRUCT_IF_C BFu9i_BFu33_BFu7c lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu33_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu7c");
    set_bf_and_test(lv, v3, 5, 2, 7, 1, "BFu9i_BFu33_BFu7c");
    set_bf_and_test(lv, v3, 5, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu33_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu7c, BFu9i_BFu33_BFu7c)
//============================================================================



static void Test_BFu9i_BFu33_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu33_BFu7i");
    static STRUCT_IF_C BFu9i_BFu33_BFu7i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu33_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu7i");
    set_bf_and_test(lv, v3, 5, 2, 7, 1, "BFu9i_BFu33_BFu7i");
    set_bf_and_test(lv, v3, 5, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu33_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu7i, BFu9i_BFu33_BFu7i)
//============================================================================



static void Test_BFu9i_BFu33_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu33_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu33_BFu7ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu33_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu7ll");
    set_bf_and_test(lv, v3, 5, 2, 7, 1, "BFu9i_BFu33_BFu7ll");
    set_bf_and_test(lv, v3, 5, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu33_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu7ll, BFu9i_BFu33_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu33_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu33_BFu7s");
    static STRUCT_IF_C BFu9i_BFu33_BFu7s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu33_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu7s");
    set_bf_and_test(lv, v3, 5, 2, 7, 1, "BFu9i_BFu33_BFu7s");
    set_bf_and_test(lv, v3, 5, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu33_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu7s, BFu9i_BFu33_BFu7s)
//============================================================================



static void Test_BFu9i_BFu33_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu33_BFu8c");
    static STRUCT_IF_C BFu9i_BFu33_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu33_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu8c");
    set_bf_and_test(lv, v3, 5, 2, 8, 1, "BFu9i_BFu33_BFu8c");
    set_bf_and_test(lv, v3, 5, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu33_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu8c, BFu9i_BFu33_BFu8c)
//============================================================================



static void Test_BFu9i_BFu33_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu33_BFu8i");
    static STRUCT_IF_C BFu9i_BFu33_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu33_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu8i");
    set_bf_and_test(lv, v3, 5, 2, 8, 1, "BFu9i_BFu33_BFu8i");
    set_bf_and_test(lv, v3, 5, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu33_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu8i, BFu9i_BFu33_BFu8i)
//============================================================================



static void Test_BFu9i_BFu33_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu33_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu33_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu33_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu8ll");
    set_bf_and_test(lv, v3, 5, 2, 8, 1, "BFu9i_BFu33_BFu8ll");
    set_bf_and_test(lv, v3, 5, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu33_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu8ll, BFu9i_BFu33_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu33_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu33_BFu8s");
    static STRUCT_IF_C BFu9i_BFu33_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu33_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu8s");
    set_bf_and_test(lv, v3, 5, 2, 8, 1, "BFu9i_BFu33_BFu8s");
    set_bf_and_test(lv, v3, 5, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu33_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu8s, BFu9i_BFu33_BFu8s)
//============================================================================



static void Test_BFu9i_BFu33_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu33_BFu9i");
    static STRUCT_IF_C BFu9i_BFu33_BFu9i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu33_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu9i");
    set_bf_and_test(lv, v3, 5, 2, 9, 1, "BFu9i_BFu33_BFu9i");
    set_bf_and_test(lv, v3, 5, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu9i, BFu9i_BFu33_BFu9i)
//============================================================================



static void Test_BFu9i_BFu33_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu33_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu33_BFu9ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu33_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu9ll");
    set_bf_and_test(lv, v3, 5, 2, 9, 1, "BFu9i_BFu33_BFu9ll");
    set_bf_and_test(lv, v3, 5, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu9ll, BFu9i_BFu33_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu33_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu33_BFu9s");
    static STRUCT_IF_C BFu9i_BFu33_BFu9s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu33_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_BFu9s");
    set_bf_and_test(lv, v3, 5, 2, 9, 1, "BFu9i_BFu33_BFu9s");
    set_bf_and_test(lv, v3, 5, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu33_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_BFu9s, BFu9i_BFu33_BFu9s)
//============================================================================



static void Test_BFu9i_BFu33_C()
{
  {
    init_simple_test("BFu9i_BFu33_C");
    static STRUCT_IF_C BFu9i_BFu33_C lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu33_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_C");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_C");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_C");
    check_field_offset(lv, v3, 6, "BFu9i_BFu33_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_C, BFu9i_BFu33_C)
//============================================================================



static void Test_BFu9i_BFu33_D()
{
  {
    init_simple_test("BFu9i_BFu33_D");
    static STRUCT_IF_C BFu9i_BFu33_D lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_BFu33_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_D");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_D");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_D");
    check_field_offset(lv, v3, 6, "BFu9i_BFu33_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_D, BFu9i_BFu33_D)
//============================================================================



static void Test_BFu9i_BFu33_F()
{
  {
    init_simple_test("BFu9i_BFu33_F");
    static STRUCT_IF_C BFu9i_BFu33_F lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu33_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_F");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_F");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_F");
    check_field_offset(lv, v3, 6, "BFu9i_BFu33_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_F, BFu9i_BFu33_F)
//============================================================================



static void Test_BFu9i_BFu33_I()
{
  {
    init_simple_test("BFu9i_BFu33_I");
    static STRUCT_IF_C BFu9i_BFu33_I lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu33_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_I");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_I");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_I");
    check_field_offset(lv, v3, 6, "BFu9i_BFu33_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_I, BFu9i_BFu33_I)
//============================================================================



static void Test_BFu9i_BFu33_Ip()
{
  {
    init_simple_test("BFu9i_BFu33_Ip");
    static STRUCT_IF_C BFu9i_BFu33_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_BFu33_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_Ip");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_Ip");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_Ip");
    check_field_offset(lv, v3, 6, "BFu9i_BFu33_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_Ip, BFu9i_BFu33_Ip)
//============================================================================



static void Test_BFu9i_BFu33_L()
{
  {
    init_simple_test("BFu9i_BFu33_L");
    static STRUCT_IF_C BFu9i_BFu33_L lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_BFu33_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_L");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_L");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_L");
    check_field_offset(lv, v3, 6, "BFu9i_BFu33_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_L, BFu9i_BFu33_L)
//============================================================================



static void Test_BFu9i_BFu33_S()
{
  {
    init_simple_test("BFu9i_BFu33_S");
    static STRUCT_IF_C BFu9i_BFu33_S lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu33_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_S");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_S");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_S");
    check_field_offset(lv, v3, 6, "BFu9i_BFu33_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_S, BFu9i_BFu33_S)
//============================================================================



static void Test_BFu9i_BFu33_Uc()
{
  {
    init_simple_test("BFu9i_BFu33_Uc");
    static STRUCT_IF_C BFu9i_BFu33_Uc lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu33_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_Uc");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_Uc");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_Uc");
    check_field_offset(lv, v3, 6, "BFu9i_BFu33_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_Uc, BFu9i_BFu33_Uc)
//============================================================================



static void Test_BFu9i_BFu33_Ui()
{
  {
    init_simple_test("BFu9i_BFu33_Ui");
    static STRUCT_IF_C BFu9i_BFu33_Ui lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu33_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_Ui");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_Ui");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_Ui");
    check_field_offset(lv, v3, 6, "BFu9i_BFu33_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_Ui, BFu9i_BFu33_Ui)
//============================================================================



static void Test_BFu9i_BFu33_Ul()
{
  {
    init_simple_test("BFu9i_BFu33_Ul");
    static STRUCT_IF_C BFu9i_BFu33_Ul lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_BFu33_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_Ul");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_Ul");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_Ul");
    check_field_offset(lv, v3, 6, "BFu9i_BFu33_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_Ul, BFu9i_BFu33_Ul)
//============================================================================



static void Test_BFu9i_BFu33_Us()
{
  {
    init_simple_test("BFu9i_BFu33_Us");
    static STRUCT_IF_C BFu9i_BFu33_Us lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_BFu33_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_Us");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_Us");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_Us");
    check_field_offset(lv, v3, 6, "BFu9i_BFu33_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_Us, BFu9i_BFu33_Us)
//============================================================================



static void Test_BFu9i_BFu33_Vp()
{
  {
    init_simple_test("BFu9i_BFu33_Vp");
    static STRUCT_IF_C BFu9i_BFu33_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_BFu33_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu33_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu33_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu33_Vp");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "BFu9i_BFu33_Vp");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu33_Vp");
    check_field_offset(lv, v3, 6, "BFu9i_BFu33_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu33_Vp, BFu9i_BFu33_Vp)
//============================================================================



static void Test_BFu9i_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu7c");
    static STRUCT_IF_C BFu9i_BFu7c lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c, BFu9i_BFu7c)
//============================================================================



static void Test_BFu9i_BFu7c_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu15i");
    static STRUCT_IF_C BFu9i_BFu7c_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7c_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu9i_BFu7c_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu7c_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu15i, BFu9i_BFu7c_BFu15i)
//============================================================================



static void Test_BFu9i_BFu7c_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu7c_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7c_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu9i_BFu7c_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu7c_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu15ll, BFu9i_BFu7c_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu7c_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu15s");
    static STRUCT_IF_C BFu9i_BFu7c_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7c_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu9i_BFu7c_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu7c_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu15s, BFu9i_BFu7c_BFu15s)
//============================================================================



static void Test_BFu9i_BFu7c_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu16i");
    static STRUCT_IF_C BFu9i_BFu7c_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu16i");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu9i_BFu7c_BFu16i");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu7c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu16i, BFu9i_BFu7c_BFu16i)
//============================================================================



static void Test_BFu9i_BFu7c_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu7c_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu16ll");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu9i_BFu7c_BFu16ll");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu7c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu16ll, BFu9i_BFu7c_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu7c_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu16s");
    static STRUCT_IF_C BFu9i_BFu7c_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu16s");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu9i_BFu7c_BFu16s");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu7c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu16s, BFu9i_BFu7c_BFu16s)
//============================================================================



static void Test_BFu9i_BFu7c_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu17i");
    static STRUCT_IF_C BFu9i_BFu7c_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu7c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "BFu9i_BFu7c_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu7c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu17i, BFu9i_BFu7c_BFu17i)
//============================================================================



static void Test_BFu9i_BFu7c_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu7c_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu7c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "BFu9i_BFu7c_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu7c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu17ll, BFu9i_BFu7c_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu7c_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu1c");
    static STRUCT_IF_C BFu9i_BFu7c_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7c_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu1c");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu9i_BFu7c_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu1c, BFu9i_BFu7c_BFu1c)
//============================================================================



static void Test_BFu9i_BFu7c_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu1i");
    static STRUCT_IF_C BFu9i_BFu7c_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7c_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu1i");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu9i_BFu7c_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu1i, BFu9i_BFu7c_BFu1i)
//============================================================================



static void Test_BFu9i_BFu7c_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu7c_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7c_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu1ll");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu9i_BFu7c_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu1ll, BFu9i_BFu7c_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu7c_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu1s");
    static STRUCT_IF_C BFu9i_BFu7c_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7c_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu1s");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu9i_BFu7c_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu1s, BFu9i_BFu7c_BFu1s)
//============================================================================



static void Test_BFu9i_BFu7c_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu31i");
    static STRUCT_IF_C BFu9i_BFu7c_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7c_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "BFu9i_BFu7c_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu7c_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu31i, BFu9i_BFu7c_BFu31i)
//============================================================================



static void Test_BFu9i_BFu7c_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu7c_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7c_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "BFu9i_BFu7c_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu7c_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu31ll, BFu9i_BFu7c_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu7c_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu32i");
    static STRUCT_IF_C BFu9i_BFu7c_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7c_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "BFu9i_BFu7c_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu7c_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu32i, BFu9i_BFu7c_BFu32i)
//============================================================================



static void Test_BFu9i_BFu7c_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu7c_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7c_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "BFu9i_BFu7c_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu7c_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu32ll, BFu9i_BFu7c_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu7c_BFu33()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu33");
    static STRUCT_IF_C BFu9i_BFu7c_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu7c_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, 1, "BFu9i_BFu7c_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, hide_ull(1LL<<32), "BFu9i_BFu7c_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu33, BFu9i_BFu7c_BFu33)
//============================================================================



static void Test_BFu9i_BFu7c_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu7c");
    static STRUCT_IF_C BFu9i_BFu7c_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu9i_BFu7c_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu7c, BFu9i_BFu7c_BFu7c)
//============================================================================



static void Test_BFu9i_BFu7c_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu7i");
    static STRUCT_IF_C BFu9i_BFu7c_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu9i_BFu7c_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu7i, BFu9i_BFu7c_BFu7i)
//============================================================================



static void Test_BFu9i_BFu7c_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu7c_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu9i_BFu7c_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu7ll, BFu9i_BFu7c_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu7c_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu7s");
    static STRUCT_IF_C BFu9i_BFu7c_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu9i_BFu7c_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu7s, BFu9i_BFu7c_BFu7s)
//============================================================================



static void Test_BFu9i_BFu7c_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu8c");
    static STRUCT_IF_C BFu9i_BFu7c_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu9i_BFu7c_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu7c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu8c, BFu9i_BFu7c_BFu8c)
//============================================================================



static void Test_BFu9i_BFu7c_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu8i");
    static STRUCT_IF_C BFu9i_BFu7c_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu9i_BFu7c_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu7c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu8i, BFu9i_BFu7c_BFu8i)
//============================================================================



static void Test_BFu9i_BFu7c_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu7c_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu9i_BFu7c_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu7c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu8ll, BFu9i_BFu7c_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu7c_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu8s");
    static STRUCT_IF_C BFu9i_BFu7c_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu9i_BFu7c_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu7c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu8s, BFu9i_BFu7c_BFu8s)
//============================================================================



static void Test_BFu9i_BFu7c_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu9i");
    static STRUCT_IF_C BFu9i_BFu7c_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu9i_BFu7c_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu9i, BFu9i_BFu7c_BFu9i)
//============================================================================



static void Test_BFu9i_BFu7c_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu7c_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu9i_BFu7c_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu9ll, BFu9i_BFu7c_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu7c_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu7c_BFu9s");
    static STRUCT_IF_C BFu9i_BFu7c_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu9i_BFu7c_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_BFu9s, BFu9i_BFu7c_BFu9s)
//============================================================================



static void Test_BFu9i_BFu7c_C()
{
  {
    init_simple_test("BFu9i_BFu7c_C");
    static STRUCT_IF_C BFu9i_BFu7c_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7c_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_C");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_C");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_C");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7c_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_C, BFu9i_BFu7c_C)
//============================================================================



static void Test_BFu9i_BFu7c_D()
{
  {
    init_simple_test("BFu9i_BFu7c_D");
    static STRUCT_IF_C BFu9i_BFu7c_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu7c_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_D");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_D");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_D");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7c_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_D, BFu9i_BFu7c_D)
//============================================================================



static void Test_BFu9i_BFu7c_F()
{
  {
    init_simple_test("BFu9i_BFu7c_F");
    static STRUCT_IF_C BFu9i_BFu7c_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7c_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_F");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_F");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_F");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7c_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_F, BFu9i_BFu7c_F)
//============================================================================



static void Test_BFu9i_BFu7c_I()
{
  {
    init_simple_test("BFu9i_BFu7c_I");
    static STRUCT_IF_C BFu9i_BFu7c_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7c_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_I");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_I");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_I");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7c_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_I, BFu9i_BFu7c_I)
//============================================================================



static void Test_BFu9i_BFu7c_Ip()
{
  {
    init_simple_test("BFu9i_BFu7c_Ip");
    static STRUCT_IF_C BFu9i_BFu7c_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_BFu7c_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_Ip");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_Ip");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_Ip");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7c_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_Ip, BFu9i_BFu7c_Ip)
//============================================================================



static void Test_BFu9i_BFu7c_L()
{
  {
    init_simple_test("BFu9i_BFu7c_L");
    static STRUCT_IF_C BFu9i_BFu7c_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu7c_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_L");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_L");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_L");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7c_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_L, BFu9i_BFu7c_L)
//============================================================================



static void Test_BFu9i_BFu7c_S()
{
  {
    init_simple_test("BFu9i_BFu7c_S");
    static STRUCT_IF_C BFu9i_BFu7c_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7c_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_S");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_S");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_S");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7c_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_S, BFu9i_BFu7c_S)
//============================================================================



static void Test_BFu9i_BFu7c_Uc()
{
  {
    init_simple_test("BFu9i_BFu7c_Uc");
    static STRUCT_IF_C BFu9i_BFu7c_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7c_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_Uc");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_Uc");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_Uc");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7c_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_Uc, BFu9i_BFu7c_Uc)
//============================================================================



static void Test_BFu9i_BFu7c_Ui()
{
  {
    init_simple_test("BFu9i_BFu7c_Ui");
    static STRUCT_IF_C BFu9i_BFu7c_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7c_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_Ui");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_Ui");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_Ui");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7c_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_Ui, BFu9i_BFu7c_Ui)
//============================================================================



static void Test_BFu9i_BFu7c_Ul()
{
  {
    init_simple_test("BFu9i_BFu7c_Ul");
    static STRUCT_IF_C BFu9i_BFu7c_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu7c_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_Ul");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_Ul");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_Ul");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7c_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_Ul, BFu9i_BFu7c_Ul)
//============================================================================



static void Test_BFu9i_BFu7c_Us()
{
  {
    init_simple_test("BFu9i_BFu7c_Us");
    static STRUCT_IF_C BFu9i_BFu7c_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7c_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_Us");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_Us");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_Us");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7c_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_Us, BFu9i_BFu7c_Us)
//============================================================================



static void Test_BFu9i_BFu7c_Vp()
{
  {
    init_simple_test("BFu9i_BFu7c_Vp");
    static STRUCT_IF_C BFu9i_BFu7c_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_BFu7c_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7c_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7c_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7c_Vp");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7c_Vp");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7c_Vp");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7c_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7c_Vp, BFu9i_BFu7c_Vp)
//============================================================================



static void Test_BFu9i_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu7i");
    static STRUCT_IF_C BFu9i_BFu7i lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i, BFu9i_BFu7i)
//============================================================================



static void Test_BFu9i_BFu7i_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu15i");
    static STRUCT_IF_C BFu9i_BFu7i_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu9i_BFu7i_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu7i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu15i, BFu9i_BFu7i_BFu15i)
//============================================================================



static void Test_BFu9i_BFu7i_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu7i_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu9i_BFu7i_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu7i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu15ll, BFu9i_BFu7i_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu7i_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu15s");
    static STRUCT_IF_C BFu9i_BFu7i_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu9i_BFu7i_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu7i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu15s, BFu9i_BFu7i_BFu15s)
//============================================================================



static void Test_BFu9i_BFu7i_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu16i");
    static STRUCT_IF_C BFu9i_BFu7i_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu16i");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu9i_BFu7i_BFu16i");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu7i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu16i, BFu9i_BFu7i_BFu16i)
//============================================================================



static void Test_BFu9i_BFu7i_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu7i_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu16ll");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu9i_BFu7i_BFu16ll");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu7i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu16ll, BFu9i_BFu7i_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu7i_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu16s");
    static STRUCT_IF_C BFu9i_BFu7i_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu16s");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu9i_BFu7i_BFu16s");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu7i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu16s, BFu9i_BFu7i_BFu16s)
//============================================================================



static void Test_BFu9i_BFu7i_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu17i");
    static STRUCT_IF_C BFu9i_BFu7i_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu7i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "BFu9i_BFu7i_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu7i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu17i, BFu9i_BFu7i_BFu17i)
//============================================================================



static void Test_BFu9i_BFu7i_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu7i_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu7i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "BFu9i_BFu7i_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu7i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu17ll, BFu9i_BFu7i_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu7i_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu1c");
    static STRUCT_IF_C BFu9i_BFu7i_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu1c");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu9i_BFu7i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu1c, BFu9i_BFu7i_BFu1c)
//============================================================================



static void Test_BFu9i_BFu7i_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu1i");
    static STRUCT_IF_C BFu9i_BFu7i_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu1i");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu9i_BFu7i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu1i, BFu9i_BFu7i_BFu1i)
//============================================================================



static void Test_BFu9i_BFu7i_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu7i_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu1ll");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu9i_BFu7i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu1ll, BFu9i_BFu7i_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu7i_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu1s");
    static STRUCT_IF_C BFu9i_BFu7i_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu1s");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu9i_BFu7i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu1s, BFu9i_BFu7i_BFu1s)
//============================================================================



static void Test_BFu9i_BFu7i_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu31i");
    static STRUCT_IF_C BFu9i_BFu7i_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "BFu9i_BFu7i_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu7i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu31i, BFu9i_BFu7i_BFu31i)
//============================================================================



static void Test_BFu9i_BFu7i_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu7i_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "BFu9i_BFu7i_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu7i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu31ll, BFu9i_BFu7i_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu7i_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu32i");
    static STRUCT_IF_C BFu9i_BFu7i_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "BFu9i_BFu7i_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu7i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu32i, BFu9i_BFu7i_BFu32i)
//============================================================================



static void Test_BFu9i_BFu7i_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu7i_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "BFu9i_BFu7i_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu7i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu32ll, BFu9i_BFu7i_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu7i_BFu33()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu33");
    static STRUCT_IF_C BFu9i_BFu7i_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu7i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, 1, "BFu9i_BFu7i_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, hide_ull(1LL<<32), "BFu9i_BFu7i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu33, BFu9i_BFu7i_BFu33)
//============================================================================



static void Test_BFu9i_BFu7i_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu7c");
    static STRUCT_IF_C BFu9i_BFu7i_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu9i_BFu7i_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu7c, BFu9i_BFu7i_BFu7c)
//============================================================================



static void Test_BFu9i_BFu7i_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu7i");
    static STRUCT_IF_C BFu9i_BFu7i_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu9i_BFu7i_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu7i, BFu9i_BFu7i_BFu7i)
//============================================================================



static void Test_BFu9i_BFu7i_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu7i_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu9i_BFu7i_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu7ll, BFu9i_BFu7i_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu7i_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu7s");
    static STRUCT_IF_C BFu9i_BFu7i_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu9i_BFu7i_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu7s, BFu9i_BFu7i_BFu7s)
//============================================================================



static void Test_BFu9i_BFu7i_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu8c");
    static STRUCT_IF_C BFu9i_BFu7i_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu9i_BFu7i_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu7i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu8c, BFu9i_BFu7i_BFu8c)
//============================================================================



static void Test_BFu9i_BFu7i_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu8i");
    static STRUCT_IF_C BFu9i_BFu7i_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu9i_BFu7i_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu7i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu8i, BFu9i_BFu7i_BFu8i)
//============================================================================



static void Test_BFu9i_BFu7i_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu7i_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu9i_BFu7i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu7i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu8ll, BFu9i_BFu7i_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu7i_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu8s");
    static STRUCT_IF_C BFu9i_BFu7i_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu9i_BFu7i_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu7i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu8s, BFu9i_BFu7i_BFu8s)
//============================================================================



static void Test_BFu9i_BFu7i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu9i");
    static STRUCT_IF_C BFu9i_BFu7i_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu9i_BFu7i_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu9i, BFu9i_BFu7i_BFu9i)
//============================================================================



static void Test_BFu9i_BFu7i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu7i_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu9i_BFu7i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu9ll, BFu9i_BFu7i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu7i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu7i_BFu9s");
    static STRUCT_IF_C BFu9i_BFu7i_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu9i_BFu7i_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_BFu9s, BFu9i_BFu7i_BFu9s)
//============================================================================



static void Test_BFu9i_BFu7i_C()
{
  {
    init_simple_test("BFu9i_BFu7i_C");
    static STRUCT_IF_C BFu9i_BFu7i_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_C");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_C");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_C");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_C, BFu9i_BFu7i_C)
//============================================================================



static void Test_BFu9i_BFu7i_D()
{
  {
    init_simple_test("BFu9i_BFu7i_D");
    static STRUCT_IF_C BFu9i_BFu7i_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu7i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_D");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_D");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_D");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_D, BFu9i_BFu7i_D)
//============================================================================



static void Test_BFu9i_BFu7i_F()
{
  {
    init_simple_test("BFu9i_BFu7i_F");
    static STRUCT_IF_C BFu9i_BFu7i_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_F");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_F");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_F");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_F, BFu9i_BFu7i_F)
//============================================================================



static void Test_BFu9i_BFu7i_I()
{
  {
    init_simple_test("BFu9i_BFu7i_I");
    static STRUCT_IF_C BFu9i_BFu7i_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_I");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_I");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_I");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_I, BFu9i_BFu7i_I)
//============================================================================



static void Test_BFu9i_BFu7i_Ip()
{
  {
    init_simple_test("BFu9i_BFu7i_Ip");
    static STRUCT_IF_C BFu9i_BFu7i_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_BFu7i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_Ip");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_Ip, BFu9i_BFu7i_Ip)
//============================================================================



static void Test_BFu9i_BFu7i_L()
{
  {
    init_simple_test("BFu9i_BFu7i_L");
    static STRUCT_IF_C BFu9i_BFu7i_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu7i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_L");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_L");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_L");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_L, BFu9i_BFu7i_L)
//============================================================================



static void Test_BFu9i_BFu7i_S()
{
  {
    init_simple_test("BFu9i_BFu7i_S");
    static STRUCT_IF_C BFu9i_BFu7i_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_S");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_S");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_S");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_S, BFu9i_BFu7i_S)
//============================================================================



static void Test_BFu9i_BFu7i_Uc()
{
  {
    init_simple_test("BFu9i_BFu7i_Uc");
    static STRUCT_IF_C BFu9i_BFu7i_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_Uc");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_Uc, BFu9i_BFu7i_Uc)
//============================================================================



static void Test_BFu9i_BFu7i_Ui()
{
  {
    init_simple_test("BFu9i_BFu7i_Ui");
    static STRUCT_IF_C BFu9i_BFu7i_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_Ui");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_Ui, BFu9i_BFu7i_Ui)
//============================================================================



static void Test_BFu9i_BFu7i_Ul()
{
  {
    init_simple_test("BFu9i_BFu7i_Ul");
    static STRUCT_IF_C BFu9i_BFu7i_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu7i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_Ul");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_Ul, BFu9i_BFu7i_Ul)
//============================================================================



static void Test_BFu9i_BFu7i_Us()
{
  {
    init_simple_test("BFu9i_BFu7i_Us");
    static STRUCT_IF_C BFu9i_BFu7i_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_Us");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_Us");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_Us");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_Us, BFu9i_BFu7i_Us)
//============================================================================



static void Test_BFu9i_BFu7i_Vp()
{
  {
    init_simple_test("BFu9i_BFu7i_Vp");
    static STRUCT_IF_C BFu9i_BFu7i_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_BFu7i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7i_Vp");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7i_Vp, BFu9i_BFu7i_Vp)
//============================================================================



static void Test_BFu9i_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu7ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll, BFu9i_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu15i");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu9i_BFu7ll_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu7ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu15i, BFu9i_BFu7ll_BFu15i)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu9i_BFu7ll_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu7ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu15ll, BFu9i_BFu7ll_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu15s");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu9i_BFu7ll_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu7ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu15s, BFu9i_BFu7ll_BFu15s)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu16i");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu16i");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu9i_BFu7ll_BFu16i");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu7ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu16i, BFu9i_BFu7ll_BFu16i)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu16ll");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu9i_BFu7ll_BFu16ll");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu7ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu16ll, BFu9i_BFu7ll_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu16s");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu16s");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu9i_BFu7ll_BFu16s");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu7ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu16s, BFu9i_BFu7ll_BFu16s)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu17i");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu7ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "BFu9i_BFu7ll_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu7ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu17i, BFu9i_BFu7ll_BFu17i)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu7ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "BFu9i_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu7ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu17ll, BFu9i_BFu7ll_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu1c");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu1c");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu9i_BFu7ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu1c, BFu9i_BFu7ll_BFu1c)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu1i");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu1i");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu9i_BFu7ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu1i, BFu9i_BFu7ll_BFu1i)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu1ll");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu9i_BFu7ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu1ll, BFu9i_BFu7ll_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu1s");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu1s");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu9i_BFu7ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu1s, BFu9i_BFu7ll_BFu1s)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu31i");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "BFu9i_BFu7ll_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu7ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu31i, BFu9i_BFu7ll_BFu31i)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "BFu9i_BFu7ll_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu7ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu31ll, BFu9i_BFu7ll_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu32i");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "BFu9i_BFu7ll_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu7ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu32i, BFu9i_BFu7ll_BFu32i)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "BFu9i_BFu7ll_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu7ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu32ll, BFu9i_BFu7ll_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu33()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu33");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu7ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, 1, "BFu9i_BFu7ll_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, hide_ull(1LL<<32), "BFu9i_BFu7ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu33, BFu9i_BFu7ll_BFu33)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu7c");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu9i_BFu7ll_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu7c, BFu9i_BFu7ll_BFu7c)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu7i");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu9i_BFu7ll_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu7i, BFu9i_BFu7ll_BFu7i)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu9i_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu7ll, BFu9i_BFu7ll_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu7s");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu9i_BFu7ll_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu7s, BFu9i_BFu7ll_BFu7s)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu8c");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu9i_BFu7ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu7ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu8c, BFu9i_BFu7ll_BFu8c)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu8i");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu9i_BFu7ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu7ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu8i, BFu9i_BFu7ll_BFu8i)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu9i_BFu7ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu7ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu8ll, BFu9i_BFu7ll_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu8s");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu9i_BFu7ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu7ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu8s, BFu9i_BFu7ll_BFu8s)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu9i_BFu7ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu9i, BFu9i_BFu7ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu9i_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu9ll, BFu9i_BFu7ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu7ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu7ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFu7ll_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu9i_BFu7ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_BFu9s, BFu9i_BFu7ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFu7ll_C()
{
  {
    init_simple_test("BFu9i_BFu7ll_C");
    static STRUCT_IF_C BFu9i_BFu7ll_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_C");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_C");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_C");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_C, BFu9i_BFu7ll_C)
//============================================================================



static void Test_BFu9i_BFu7ll_D()
{
  {
    init_simple_test("BFu9i_BFu7ll_D");
    static STRUCT_IF_C BFu9i_BFu7ll_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu7ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_D");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_D");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_D");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_D, BFu9i_BFu7ll_D)
//============================================================================



static void Test_BFu9i_BFu7ll_F()
{
  {
    init_simple_test("BFu9i_BFu7ll_F");
    static STRUCT_IF_C BFu9i_BFu7ll_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_F");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_F");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_F");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_F, BFu9i_BFu7ll_F)
//============================================================================



static void Test_BFu9i_BFu7ll_I()
{
  {
    init_simple_test("BFu9i_BFu7ll_I");
    static STRUCT_IF_C BFu9i_BFu7ll_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_I");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_I");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_I");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_I, BFu9i_BFu7ll_I)
//============================================================================



static void Test_BFu9i_BFu7ll_Ip()
{
  {
    init_simple_test("BFu9i_BFu7ll_Ip");
    static STRUCT_IF_C BFu9i_BFu7ll_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_BFu7ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_Ip");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_Ip, BFu9i_BFu7ll_Ip)
//============================================================================



static void Test_BFu9i_BFu7ll_L()
{
  {
    init_simple_test("BFu9i_BFu7ll_L");
    static STRUCT_IF_C BFu9i_BFu7ll_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu7ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_L");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_L");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_L");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_L, BFu9i_BFu7ll_L)
//============================================================================



static void Test_BFu9i_BFu7ll_S()
{
  {
    init_simple_test("BFu9i_BFu7ll_S");
    static STRUCT_IF_C BFu9i_BFu7ll_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_S");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_S");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_S");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_S, BFu9i_BFu7ll_S)
//============================================================================



static void Test_BFu9i_BFu7ll_Uc()
{
  {
    init_simple_test("BFu9i_BFu7ll_Uc");
    static STRUCT_IF_C BFu9i_BFu7ll_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_Uc");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_Uc, BFu9i_BFu7ll_Uc)
//============================================================================



static void Test_BFu9i_BFu7ll_Ui()
{
  {
    init_simple_test("BFu9i_BFu7ll_Ui");
    static STRUCT_IF_C BFu9i_BFu7ll_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_Ui");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_Ui, BFu9i_BFu7ll_Ui)
//============================================================================



static void Test_BFu9i_BFu7ll_Ul()
{
  {
    init_simple_test("BFu9i_BFu7ll_Ul");
    static STRUCT_IF_C BFu9i_BFu7ll_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu7ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_Ul");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_Ul, BFu9i_BFu7ll_Ul)
//============================================================================



static void Test_BFu9i_BFu7ll_Us()
{
  {
    init_simple_test("BFu9i_BFu7ll_Us");
    static STRUCT_IF_C BFu9i_BFu7ll_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_Us");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_Us, BFu9i_BFu7ll_Us)
//============================================================================



static void Test_BFu9i_BFu7ll_Vp()
{
  {
    init_simple_test("BFu9i_BFu7ll_Vp");
    static STRUCT_IF_C BFu9i_BFu7ll_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_BFu7ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7ll_Vp");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7ll_Vp, BFu9i_BFu7ll_Vp)
//============================================================================



static void Test_BFu9i_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu7s");
    static STRUCT_IF_C BFu9i_BFu7s lv;
    check2(sizeof(lv), 2, "sizeof(BFu9i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s, BFu9i_BFu7s)
//============================================================================



static void Test_BFu9i_BFu7s_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu15i");
    static STRUCT_IF_C BFu9i_BFu7s_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu9i_BFu7s_BFu15i");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu7s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu15i, BFu9i_BFu7s_BFu15i)
//============================================================================



static void Test_BFu9i_BFu7s_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu7s_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu9i_BFu7s_BFu15ll");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu7s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu15ll, BFu9i_BFu7s_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu7s_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu15s");
    static STRUCT_IF_C BFu9i_BFu7s_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, 1, "BFu9i_BFu7s_BFu15s");
    set_bf_and_test(lv, v3, 2, 0, 15, hide_ull(1LL<<14), "BFu9i_BFu7s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu15s, BFu9i_BFu7s_BFu15s)
//============================================================================



static void Test_BFu9i_BFu7s_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu16i");
    static STRUCT_IF_C BFu9i_BFu7s_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu16i");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu9i_BFu7s_BFu16i");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu7s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu16i, BFu9i_BFu7s_BFu16i)
//============================================================================



static void Test_BFu9i_BFu7s_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu7s_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu16ll");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu9i_BFu7s_BFu16ll");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu7s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu16ll, BFu9i_BFu7s_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu7s_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu16s");
    static STRUCT_IF_C BFu9i_BFu7s_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu16s");
    set_bf_and_test(lv, v3, 2, 0, 16, 1, "BFu9i_BFu7s_BFu16s");
    set_bf_and_test(lv, v3, 2, 0, 16, hide_ull(1LL<<15), "BFu9i_BFu7s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu16s, BFu9i_BFu7s_BFu16s)
//============================================================================



static void Test_BFu9i_BFu7s_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu17i");
    static STRUCT_IF_C BFu9i_BFu7s_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu7s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "BFu9i_BFu7s_BFu17i");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu7s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu17i, BFu9i_BFu7s_BFu17i)
//============================================================================



static void Test_BFu9i_BFu7s_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu7s_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu7s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, 1, "BFu9i_BFu7s_BFu17ll");
    set_bf_and_test(lv, v3, 2, 0, 17, hide_ull(1LL<<16), "BFu9i_BFu7s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu17ll, BFu9i_BFu7s_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu7s_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu1c");
    static STRUCT_IF_C BFu9i_BFu7s_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu1c");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu9i_BFu7s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu1c, BFu9i_BFu7s_BFu1c)
//============================================================================



static void Test_BFu9i_BFu7s_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu1i");
    static STRUCT_IF_C BFu9i_BFu7s_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu1i");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu9i_BFu7s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu1i, BFu9i_BFu7s_BFu1i)
//============================================================================



static void Test_BFu9i_BFu7s_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu7s_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu1ll");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu9i_BFu7s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu1ll, BFu9i_BFu7s_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu7s_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu1s");
    static STRUCT_IF_C BFu9i_BFu7s_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu1s");
    set_bf_and_test(lv, v3, 2, 0, 1, 1, "BFu9i_BFu7s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu1s, BFu9i_BFu7s_BFu1s)
//============================================================================



static void Test_BFu9i_BFu7s_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu31i");
    static STRUCT_IF_C BFu9i_BFu7s_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "BFu9i_BFu7s_BFu31i");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu7s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu31i, BFu9i_BFu7s_BFu31i)
//============================================================================



static void Test_BFu9i_BFu7s_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu7s_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, 1, "BFu9i_BFu7s_BFu31ll");
    set_bf_and_test(lv, v3, 2, 0, 31, hide_ull(1LL<<30), "BFu9i_BFu7s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu31ll, BFu9i_BFu7s_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu7s_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu32i");
    static STRUCT_IF_C BFu9i_BFu7s_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "BFu9i_BFu7s_BFu32i");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu7s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu32i, BFu9i_BFu7s_BFu32i)
//============================================================================



static void Test_BFu9i_BFu7s_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu7s_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, 1, "BFu9i_BFu7s_BFu32ll");
    set_bf_and_test(lv, v3, 2, 0, 32, hide_ull(1LL<<31), "BFu9i_BFu7s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu32ll, BFu9i_BFu7s_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu7s_BFu33()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu33");
    static STRUCT_IF_C BFu9i_BFu7s_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu7s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, 1, "BFu9i_BFu7s_BFu33");
    set_bf_and_test(lv, v3, 2, 0, 33, hide_ull(1LL<<32), "BFu9i_BFu7s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu33, BFu9i_BFu7s_BFu33)
//============================================================================



static void Test_BFu9i_BFu7s_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu7c");
    static STRUCT_IF_C BFu9i_BFu7s_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu9i_BFu7s_BFu7c");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu7c, BFu9i_BFu7s_BFu7c)
//============================================================================



static void Test_BFu9i_BFu7s_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu7i");
    static STRUCT_IF_C BFu9i_BFu7s_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu9i_BFu7s_BFu7i");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu7i, BFu9i_BFu7s_BFu7i)
//============================================================================



static void Test_BFu9i_BFu7s_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu7s_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu9i_BFu7s_BFu7ll");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu7ll, BFu9i_BFu7s_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu7s_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu7s");
    static STRUCT_IF_C BFu9i_BFu7s_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, 1, "BFu9i_BFu7s_BFu7s");
    set_bf_and_test(lv, v3, 2, 0, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu7s, BFu9i_BFu7s_BFu7s)
//============================================================================



static void Test_BFu9i_BFu7s_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu8c");
    static STRUCT_IF_C BFu9i_BFu7s_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu9i_BFu7s_BFu8c");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu7s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu8c, BFu9i_BFu7s_BFu8c)
//============================================================================



static void Test_BFu9i_BFu7s_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu8i");
    static STRUCT_IF_C BFu9i_BFu7s_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu9i_BFu7s_BFu8i");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu7s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu8i, BFu9i_BFu7s_BFu8i)
//============================================================================



static void Test_BFu9i_BFu7s_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu7s_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu9i_BFu7s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu7s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu8ll, BFu9i_BFu7s_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu7s_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu8s");
    static STRUCT_IF_C BFu9i_BFu7s_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, 1, "BFu9i_BFu7s_BFu8s");
    set_bf_and_test(lv, v3, 2, 0, 8, hide_ull(1LL<<7), "BFu9i_BFu7s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu8s, BFu9i_BFu7s_BFu8s)
//============================================================================



static void Test_BFu9i_BFu7s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu9i");
    static STRUCT_IF_C BFu9i_BFu7s_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu9i_BFu7s_BFu9i");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu9i, BFu9i_BFu7s_BFu9i)
//============================================================================



static void Test_BFu9i_BFu7s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu7s_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu9i_BFu7s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu9ll, BFu9i_BFu7s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu7s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu7s_BFu9s");
    static STRUCT_IF_C BFu9i_BFu7s_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, 1, "BFu9i_BFu7s_BFu9s");
    set_bf_and_test(lv, v3, 2, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_BFu9s, BFu9i_BFu7s_BFu9s)
//============================================================================



static void Test_BFu9i_BFu7s_C()
{
  {
    init_simple_test("BFu9i_BFu7s_C");
    static STRUCT_IF_C BFu9i_BFu7s_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7s_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_C");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_C");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_C");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_C, BFu9i_BFu7s_C)
//============================================================================



static void Test_BFu9i_BFu7s_D()
{
  {
    init_simple_test("BFu9i_BFu7s_D");
    static STRUCT_IF_C BFu9i_BFu7s_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu7s_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_D");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_D");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_D");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_D, BFu9i_BFu7s_D)
//============================================================================



static void Test_BFu9i_BFu7s_F()
{
  {
    init_simple_test("BFu9i_BFu7s_F");
    static STRUCT_IF_C BFu9i_BFu7s_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7s_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_F");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_F");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_F");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_F, BFu9i_BFu7s_F)
//============================================================================



static void Test_BFu9i_BFu7s_I()
{
  {
    init_simple_test("BFu9i_BFu7s_I");
    static STRUCT_IF_C BFu9i_BFu7s_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7s_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_I");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_I");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_I");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_I, BFu9i_BFu7s_I)
//============================================================================



static void Test_BFu9i_BFu7s_Ip()
{
  {
    init_simple_test("BFu9i_BFu7s_Ip");
    static STRUCT_IF_C BFu9i_BFu7s_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_BFu7s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_Ip");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_Ip");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_Ip");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_Ip, BFu9i_BFu7s_Ip)
//============================================================================



static void Test_BFu9i_BFu7s_L()
{
  {
    init_simple_test("BFu9i_BFu7s_L");
    static STRUCT_IF_C BFu9i_BFu7s_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu7s_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_L");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_L");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_L");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_L, BFu9i_BFu7s_L)
//============================================================================



static void Test_BFu9i_BFu7s_S()
{
  {
    init_simple_test("BFu9i_BFu7s_S");
    static STRUCT_IF_C BFu9i_BFu7s_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7s_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_S");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_S");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_S");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_S, BFu9i_BFu7s_S)
//============================================================================



static void Test_BFu9i_BFu7s_Uc()
{
  {
    init_simple_test("BFu9i_BFu7s_Uc");
    static STRUCT_IF_C BFu9i_BFu7s_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu7s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_Uc");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_Uc");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_Uc");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_Uc, BFu9i_BFu7s_Uc)
//============================================================================



static void Test_BFu9i_BFu7s_Ui()
{
  {
    init_simple_test("BFu9i_BFu7s_Ui");
    static STRUCT_IF_C BFu9i_BFu7s_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu7s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_Ui");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_Ui");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_Ui");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_Ui, BFu9i_BFu7s_Ui)
//============================================================================



static void Test_BFu9i_BFu7s_Ul()
{
  {
    init_simple_test("BFu9i_BFu7s_Ul");
    static STRUCT_IF_C BFu9i_BFu7s_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_BFu7s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_Ul");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_Ul");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_Ul");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_Ul, BFu9i_BFu7s_Ul)
//============================================================================



static void Test_BFu9i_BFu7s_Us()
{
  {
    init_simple_test("BFu9i_BFu7s_Us");
    static STRUCT_IF_C BFu9i_BFu7s_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu7s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_Us");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_Us");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_Us");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_Us, BFu9i_BFu7s_Us)
//============================================================================



static void Test_BFu9i_BFu7s_Vp()
{
  {
    init_simple_test("BFu9i_BFu7s_Vp");
    static STRUCT_IF_C BFu9i_BFu7s_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_BFu7s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu7s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu7s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu7s_Vp");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "BFu9i_BFu7s_Vp");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu7s_Vp");
    check_field_offset(lv, v3, 2, "BFu9i_BFu7s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu7s_Vp, BFu9i_BFu7s_Vp)
//============================================================================



static void Test_BFu9i_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu8c");
    static STRUCT_IF_C BFu9i_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c, BFu9i_BFu8c)
//============================================================================



static void Test_BFu9i_BFu8c_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu15i");
    static STRUCT_IF_C BFu9i_BFu8c_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8c_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu15i");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu9i_BFu8c_BFu15i");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu8c_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu15i, BFu9i_BFu8c_BFu15i)
//============================================================================



static void Test_BFu9i_BFu8c_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu8c_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8c_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu15ll");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu9i_BFu8c_BFu15ll");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu8c_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu15ll, BFu9i_BFu8c_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu8c_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu15s");
    static STRUCT_IF_C BFu9i_BFu8c_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8c_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu15s");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu9i_BFu8c_BFu15s");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu8c_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu15s, BFu9i_BFu8c_BFu15s)
//============================================================================



static void Test_BFu9i_BFu8c_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu16i");
    static STRUCT_IF_C BFu9i_BFu8c_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu16i");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu9i_BFu8c_BFu16i");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu8c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu16i, BFu9i_BFu8c_BFu16i)
//============================================================================



static void Test_BFu9i_BFu8c_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu8c_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu16ll");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu9i_BFu8c_BFu16ll");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu8c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu16ll, BFu9i_BFu8c_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu8c_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu16s");
    static STRUCT_IF_C BFu9i_BFu8c_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu16s");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu9i_BFu8c_BFu16s");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu8c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu16s, BFu9i_BFu8c_BFu16s)
//============================================================================



static void Test_BFu9i_BFu8c_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu17i");
    static STRUCT_IF_C BFu9i_BFu8c_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu17i");
    set_bf_and_test(lv, v3, 2, 1, 17, 1, "BFu9i_BFu8c_BFu17i");
    set_bf_and_test(lv, v3, 2, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu8c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu17i, BFu9i_BFu8c_BFu17i)
//============================================================================



static void Test_BFu9i_BFu8c_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu8c_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu17ll");
    set_bf_and_test(lv, v3, 2, 1, 17, 1, "BFu9i_BFu8c_BFu17ll");
    set_bf_and_test(lv, v3, 2, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu8c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu17ll, BFu9i_BFu8c_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu8c_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu1c");
    static STRUCT_IF_C BFu9i_BFu8c_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8c_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu1c");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu9i_BFu8c_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu1c, BFu9i_BFu8c_BFu1c)
//============================================================================



static void Test_BFu9i_BFu8c_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu1i");
    static STRUCT_IF_C BFu9i_BFu8c_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8c_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu1i");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu9i_BFu8c_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu1i, BFu9i_BFu8c_BFu1i)
//============================================================================



static void Test_BFu9i_BFu8c_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu8c_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8c_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu1ll");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu9i_BFu8c_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu1ll, BFu9i_BFu8c_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu8c_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu1s");
    static STRUCT_IF_C BFu9i_BFu8c_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8c_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu1s");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu9i_BFu8c_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu1s, BFu9i_BFu8c_BFu1s)
//============================================================================



static void Test_BFu9i_BFu8c_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu31i");
    static STRUCT_IF_C BFu9i_BFu8c_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu8c_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu31i");
    set_bf_and_test(lv, v3, 2, 1, 31, 1, "BFu9i_BFu8c_BFu31i");
    set_bf_and_test(lv, v3, 2, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu8c_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu31i, BFu9i_BFu8c_BFu31i)
//============================================================================



static void Test_BFu9i_BFu8c_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu8c_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu8c_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu31ll");
    set_bf_and_test(lv, v3, 2, 1, 31, 1, "BFu9i_BFu8c_BFu31ll");
    set_bf_and_test(lv, v3, 2, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu8c_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu31ll, BFu9i_BFu8c_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu8c_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu32i");
    static STRUCT_IF_C BFu9i_BFu8c_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8c_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu32i");
    set_bf_and_test(lv, v3, 2, 1, 32, 1, "BFu9i_BFu8c_BFu32i");
    set_bf_and_test(lv, v3, 2, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu8c_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu32i, BFu9i_BFu8c_BFu32i)
//============================================================================



static void Test_BFu9i_BFu8c_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu8c_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8c_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu32ll");
    set_bf_and_test(lv, v3, 2, 1, 32, 1, "BFu9i_BFu8c_BFu32ll");
    set_bf_and_test(lv, v3, 2, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu8c_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu32ll, BFu9i_BFu8c_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu8c_BFu33()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu33");
    static STRUCT_IF_C BFu9i_BFu8c_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8c_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu33");
    set_bf_and_test(lv, v3, 2, 1, 33, 1, "BFu9i_BFu8c_BFu33");
    set_bf_and_test(lv, v3, 2, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu8c_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu33, BFu9i_BFu8c_BFu33)
//============================================================================



static void Test_BFu9i_BFu8c_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu7c");
    static STRUCT_IF_C BFu9i_BFu8c_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu7c");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu9i_BFu8c_BFu7c");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu8c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu7c, BFu9i_BFu8c_BFu7c)
//============================================================================



static void Test_BFu9i_BFu8c_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu7i");
    static STRUCT_IF_C BFu9i_BFu8c_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu7i");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu9i_BFu8c_BFu7i");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu8c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu7i, BFu9i_BFu8c_BFu7i)
//============================================================================



static void Test_BFu9i_BFu8c_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu8c_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu7ll");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu9i_BFu8c_BFu7ll");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu8c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu7ll, BFu9i_BFu8c_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu8c_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu7s");
    static STRUCT_IF_C BFu9i_BFu8c_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu7s");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu9i_BFu8c_BFu7s");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu8c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu7s, BFu9i_BFu8c_BFu7s)
//============================================================================



static void Test_BFu9i_BFu8c_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu8c");
    static STRUCT_IF_C BFu9i_BFu8c_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu8c");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu9i_BFu8c_BFu8c");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu8c, BFu9i_BFu8c_BFu8c)
//============================================================================



static void Test_BFu9i_BFu8c_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu8i");
    static STRUCT_IF_C BFu9i_BFu8c_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu8i");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu9i_BFu8c_BFu8i");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu8i, BFu9i_BFu8c_BFu8i)
//============================================================================



static void Test_BFu9i_BFu8c_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu8c_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu8ll");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu9i_BFu8c_BFu8ll");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu8ll, BFu9i_BFu8c_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu8c_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu8s");
    static STRUCT_IF_C BFu9i_BFu8c_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu8s");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu9i_BFu8c_BFu8s");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu8s, BFu9i_BFu8c_BFu8s)
//============================================================================



static void Test_BFu9i_BFu8c_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu9i");
    static STRUCT_IF_C BFu9i_BFu8c_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu9i");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu9i_BFu8c_BFu9i");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu9i, BFu9i_BFu8c_BFu9i)
//============================================================================



static void Test_BFu9i_BFu8c_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu8c_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu9ll");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu9i_BFu8c_BFu9ll");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu9ll, BFu9i_BFu8c_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu8c_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu8c_BFu9s");
    static STRUCT_IF_C BFu9i_BFu8c_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_BFu9s");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu9i_BFu8c_BFu9s");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_BFu9s, BFu9i_BFu8c_BFu9s)
//============================================================================



static void Test_BFu9i_BFu8c_C()
{
  {
    init_simple_test("BFu9i_BFu8c_C");
    static STRUCT_IF_C BFu9i_BFu8c_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8c_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_C");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_C");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_C");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8c_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_C, BFu9i_BFu8c_C)
//============================================================================



static void Test_BFu9i_BFu8c_D()
{
  {
    init_simple_test("BFu9i_BFu8c_D");
    static STRUCT_IF_C BFu9i_BFu8c_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu8c_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_D");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_D");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_D");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8c_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_D, BFu9i_BFu8c_D)
//============================================================================



static void Test_BFu9i_BFu8c_F()
{
  {
    init_simple_test("BFu9i_BFu8c_F");
    static STRUCT_IF_C BFu9i_BFu8c_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8c_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_F");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_F");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_F");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8c_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_F, BFu9i_BFu8c_F)
//============================================================================



static void Test_BFu9i_BFu8c_I()
{
  {
    init_simple_test("BFu9i_BFu8c_I");
    static STRUCT_IF_C BFu9i_BFu8c_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8c_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_I");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_I");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_I");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8c_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_I, BFu9i_BFu8c_I)
//============================================================================



static void Test_BFu9i_BFu8c_Ip()
{
  {
    init_simple_test("BFu9i_BFu8c_Ip");
    static STRUCT_IF_C BFu9i_BFu8c_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu8c_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_Ip");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_Ip");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_Ip");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8c_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_Ip, BFu9i_BFu8c_Ip)
//============================================================================



static void Test_BFu9i_BFu8c_L()
{
  {
    init_simple_test("BFu9i_BFu8c_L");
    static STRUCT_IF_C BFu9i_BFu8c_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu8c_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_L");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_L");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_L");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8c_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_L, BFu9i_BFu8c_L)
//============================================================================



static void Test_BFu9i_BFu8c_S()
{
  {
    init_simple_test("BFu9i_BFu8c_S");
    static STRUCT_IF_C BFu9i_BFu8c_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8c_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_S");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_S");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_S");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8c_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_S, BFu9i_BFu8c_S)
//============================================================================



static void Test_BFu9i_BFu8c_Uc()
{
  {
    init_simple_test("BFu9i_BFu8c_Uc");
    static STRUCT_IF_C BFu9i_BFu8c_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8c_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_Uc");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_Uc");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_Uc");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8c_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_Uc, BFu9i_BFu8c_Uc)
//============================================================================



static void Test_BFu9i_BFu8c_Ui()
{
  {
    init_simple_test("BFu9i_BFu8c_Ui");
    static STRUCT_IF_C BFu9i_BFu8c_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8c_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_Ui");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_Ui");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_Ui");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8c_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_Ui, BFu9i_BFu8c_Ui)
//============================================================================



static void Test_BFu9i_BFu8c_Ul()
{
  {
    init_simple_test("BFu9i_BFu8c_Ul");
    static STRUCT_IF_C BFu9i_BFu8c_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu8c_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_Ul");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_Ul");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_Ul");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8c_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_Ul, BFu9i_BFu8c_Ul)
//============================================================================



static void Test_BFu9i_BFu8c_Us()
{
  {
    init_simple_test("BFu9i_BFu8c_Us");
    static STRUCT_IF_C BFu9i_BFu8c_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8c_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_Us");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_Us");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_Us");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8c_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_Us, BFu9i_BFu8c_Us)
//============================================================================



static void Test_BFu9i_BFu8c_Vp()
{
  {
    init_simple_test("BFu9i_BFu8c_Vp");
    static STRUCT_IF_C BFu9i_BFu8c_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu8c_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8c_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8c_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8c_Vp");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8c_Vp");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8c_Vp");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8c_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8c_Vp, BFu9i_BFu8c_Vp)
//============================================================================



static void Test_BFu9i_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu8i");
    static STRUCT_IF_C BFu9i_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i, BFu9i_BFu8i)
//============================================================================



static void Test_BFu9i_BFu8i_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu15i");
    static STRUCT_IF_C BFu9i_BFu8i_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu15i");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu9i_BFu8i_BFu15i");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu8i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu15i, BFu9i_BFu8i_BFu15i)
//============================================================================



static void Test_BFu9i_BFu8i_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu8i_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu15ll");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu9i_BFu8i_BFu15ll");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu8i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu15ll, BFu9i_BFu8i_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu8i_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu15s");
    static STRUCT_IF_C BFu9i_BFu8i_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu15s");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu9i_BFu8i_BFu15s");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu8i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu15s, BFu9i_BFu8i_BFu15s)
//============================================================================



static void Test_BFu9i_BFu8i_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu16i");
    static STRUCT_IF_C BFu9i_BFu8i_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu16i");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu9i_BFu8i_BFu16i");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu8i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu16i, BFu9i_BFu8i_BFu16i)
//============================================================================



static void Test_BFu9i_BFu8i_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu8i_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu16ll");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu9i_BFu8i_BFu16ll");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu8i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu16ll, BFu9i_BFu8i_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu8i_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu16s");
    static STRUCT_IF_C BFu9i_BFu8i_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu16s");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu9i_BFu8i_BFu16s");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu8i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu16s, BFu9i_BFu8i_BFu16s)
//============================================================================



static void Test_BFu9i_BFu8i_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu17i");
    static STRUCT_IF_C BFu9i_BFu8i_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu17i");
    set_bf_and_test(lv, v3, 2, 1, 17, 1, "BFu9i_BFu8i_BFu17i");
    set_bf_and_test(lv, v3, 2, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu8i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu17i, BFu9i_BFu8i_BFu17i)
//============================================================================



static void Test_BFu9i_BFu8i_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu8i_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu17ll");
    set_bf_and_test(lv, v3, 2, 1, 17, 1, "BFu9i_BFu8i_BFu17ll");
    set_bf_and_test(lv, v3, 2, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu8i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu17ll, BFu9i_BFu8i_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu8i_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu1c");
    static STRUCT_IF_C BFu9i_BFu8i_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu1c");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu9i_BFu8i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu1c, BFu9i_BFu8i_BFu1c)
//============================================================================



static void Test_BFu9i_BFu8i_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu1i");
    static STRUCT_IF_C BFu9i_BFu8i_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu1i");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu9i_BFu8i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu1i, BFu9i_BFu8i_BFu1i)
//============================================================================



static void Test_BFu9i_BFu8i_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu8i_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu1ll");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu9i_BFu8i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu1ll, BFu9i_BFu8i_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu8i_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu1s");
    static STRUCT_IF_C BFu9i_BFu8i_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu1s");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu9i_BFu8i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu1s, BFu9i_BFu8i_BFu1s)
//============================================================================



static void Test_BFu9i_BFu8i_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu31i");
    static STRUCT_IF_C BFu9i_BFu8i_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu8i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu31i");
    set_bf_and_test(lv, v3, 2, 1, 31, 1, "BFu9i_BFu8i_BFu31i");
    set_bf_and_test(lv, v3, 2, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu8i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu31i, BFu9i_BFu8i_BFu31i)
//============================================================================



static void Test_BFu9i_BFu8i_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu8i_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu8i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu31ll");
    set_bf_and_test(lv, v3, 2, 1, 31, 1, "BFu9i_BFu8i_BFu31ll");
    set_bf_and_test(lv, v3, 2, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu8i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu31ll, BFu9i_BFu8i_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu8i_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu32i");
    static STRUCT_IF_C BFu9i_BFu8i_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu32i");
    set_bf_and_test(lv, v3, 2, 1, 32, 1, "BFu9i_BFu8i_BFu32i");
    set_bf_and_test(lv, v3, 2, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu8i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu32i, BFu9i_BFu8i_BFu32i)
//============================================================================



static void Test_BFu9i_BFu8i_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu8i_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu32ll");
    set_bf_and_test(lv, v3, 2, 1, 32, 1, "BFu9i_BFu8i_BFu32ll");
    set_bf_and_test(lv, v3, 2, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu8i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu32ll, BFu9i_BFu8i_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu8i_BFu33()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu33");
    static STRUCT_IF_C BFu9i_BFu8i_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu33");
    set_bf_and_test(lv, v3, 2, 1, 33, 1, "BFu9i_BFu8i_BFu33");
    set_bf_and_test(lv, v3, 2, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu8i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu33, BFu9i_BFu8i_BFu33)
//============================================================================



static void Test_BFu9i_BFu8i_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu7c");
    static STRUCT_IF_C BFu9i_BFu8i_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu7c");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu9i_BFu8i_BFu7c");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu8i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu7c, BFu9i_BFu8i_BFu7c)
//============================================================================



static void Test_BFu9i_BFu8i_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu7i");
    static STRUCT_IF_C BFu9i_BFu8i_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu7i");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu9i_BFu8i_BFu7i");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu8i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu7i, BFu9i_BFu8i_BFu7i)
//============================================================================



static void Test_BFu9i_BFu8i_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu8i_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu7ll");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu9i_BFu8i_BFu7ll");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu8i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu7ll, BFu9i_BFu8i_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu8i_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu7s");
    static STRUCT_IF_C BFu9i_BFu8i_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu7s");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu9i_BFu8i_BFu7s");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu8i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu7s, BFu9i_BFu8i_BFu7s)
//============================================================================



static void Test_BFu9i_BFu8i_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu8c");
    static STRUCT_IF_C BFu9i_BFu8i_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu8c");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu9i_BFu8i_BFu8c");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu8c, BFu9i_BFu8i_BFu8c)
//============================================================================



static void Test_BFu9i_BFu8i_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu8i");
    static STRUCT_IF_C BFu9i_BFu8i_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu8i");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu9i_BFu8i_BFu8i");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu8i, BFu9i_BFu8i_BFu8i)
//============================================================================



static void Test_BFu9i_BFu8i_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu8i_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu9i_BFu8i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu8ll, BFu9i_BFu8i_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu8i_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu8s");
    static STRUCT_IF_C BFu9i_BFu8i_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu8s");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu9i_BFu8i_BFu8s");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu8s, BFu9i_BFu8i_BFu8s)
//============================================================================



static void Test_BFu9i_BFu8i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu9i");
    static STRUCT_IF_C BFu9i_BFu8i_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu9i");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu9i_BFu8i_BFu9i");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu9i, BFu9i_BFu8i_BFu9i)
//============================================================================



static void Test_BFu9i_BFu8i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu8i_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu9i_BFu8i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu9ll, BFu9i_BFu8i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu8i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu8i_BFu9s");
    static STRUCT_IF_C BFu9i_BFu8i_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_BFu9s");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu9i_BFu8i_BFu9s");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_BFu9s, BFu9i_BFu8i_BFu9s)
//============================================================================



static void Test_BFu9i_BFu8i_C()
{
  {
    init_simple_test("BFu9i_BFu8i_C");
    static STRUCT_IF_C BFu9i_BFu8i_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_C");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_C");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_C");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_C, BFu9i_BFu8i_C)
//============================================================================



static void Test_BFu9i_BFu8i_D()
{
  {
    init_simple_test("BFu9i_BFu8i_D");
    static STRUCT_IF_C BFu9i_BFu8i_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu8i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_D");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_D");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_D");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_D, BFu9i_BFu8i_D)
//============================================================================



static void Test_BFu9i_BFu8i_F()
{
  {
    init_simple_test("BFu9i_BFu8i_F");
    static STRUCT_IF_C BFu9i_BFu8i_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_F");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_F");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_F");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_F, BFu9i_BFu8i_F)
//============================================================================



static void Test_BFu9i_BFu8i_I()
{
  {
    init_simple_test("BFu9i_BFu8i_I");
    static STRUCT_IF_C BFu9i_BFu8i_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_I");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_I");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_I");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_I, BFu9i_BFu8i_I)
//============================================================================



static void Test_BFu9i_BFu8i_Ip()
{
  {
    init_simple_test("BFu9i_BFu8i_Ip");
    static STRUCT_IF_C BFu9i_BFu8i_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu8i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_Ip");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_Ip, BFu9i_BFu8i_Ip)
//============================================================================



static void Test_BFu9i_BFu8i_L()
{
  {
    init_simple_test("BFu9i_BFu8i_L");
    static STRUCT_IF_C BFu9i_BFu8i_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu8i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_L");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_L");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_L");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_L, BFu9i_BFu8i_L)
//============================================================================



static void Test_BFu9i_BFu8i_S()
{
  {
    init_simple_test("BFu9i_BFu8i_S");
    static STRUCT_IF_C BFu9i_BFu8i_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_S");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_S");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_S");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_S, BFu9i_BFu8i_S)
//============================================================================



static void Test_BFu9i_BFu8i_Uc()
{
  {
    init_simple_test("BFu9i_BFu8i_Uc");
    static STRUCT_IF_C BFu9i_BFu8i_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_Uc");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_Uc, BFu9i_BFu8i_Uc)
//============================================================================



static void Test_BFu9i_BFu8i_Ui()
{
  {
    init_simple_test("BFu9i_BFu8i_Ui");
    static STRUCT_IF_C BFu9i_BFu8i_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_Ui");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_Ui, BFu9i_BFu8i_Ui)
//============================================================================



static void Test_BFu9i_BFu8i_Ul()
{
  {
    init_simple_test("BFu9i_BFu8i_Ul");
    static STRUCT_IF_C BFu9i_BFu8i_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu8i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_Ul");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_Ul, BFu9i_BFu8i_Ul)
//============================================================================



static void Test_BFu9i_BFu8i_Us()
{
  {
    init_simple_test("BFu9i_BFu8i_Us");
    static STRUCT_IF_C BFu9i_BFu8i_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_Us");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_Us");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_Us");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_Us, BFu9i_BFu8i_Us)
//============================================================================



static void Test_BFu9i_BFu8i_Vp()
{
  {
    init_simple_test("BFu9i_BFu8i_Vp");
    static STRUCT_IF_C BFu9i_BFu8i_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu8i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8i_Vp");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8i_Vp, BFu9i_BFu8i_Vp)
//============================================================================



static void Test_BFu9i_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll, BFu9i_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu15i");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu15i");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu9i_BFu8ll_BFu15i");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu8ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu15i, BFu9i_BFu8ll_BFu15i)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu15ll");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu9i_BFu8ll_BFu15ll");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu8ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu15ll, BFu9i_BFu8ll_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu15s");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu15s");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu9i_BFu8ll_BFu15s");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu8ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu15s, BFu9i_BFu8ll_BFu15s)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu16i");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu16i");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu9i_BFu8ll_BFu16i");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu8ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu16i, BFu9i_BFu8ll_BFu16i)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu9i_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu8ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu16ll, BFu9i_BFu8ll_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu16s");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu16s");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu9i_BFu8ll_BFu16s");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu8ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu16s, BFu9i_BFu8ll_BFu16s)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu17i");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu17i");
    set_bf_and_test(lv, v3, 2, 1, 17, 1, "BFu9i_BFu8ll_BFu17i");
    set_bf_and_test(lv, v3, 2, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu8ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu17i, BFu9i_BFu8ll_BFu17i)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu17ll");
    set_bf_and_test(lv, v3, 2, 1, 17, 1, "BFu9i_BFu8ll_BFu17ll");
    set_bf_and_test(lv, v3, 2, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu8ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu17ll, BFu9i_BFu8ll_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu1c");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu1c");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu9i_BFu8ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu1c, BFu9i_BFu8ll_BFu1c)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu1i");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu1i");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu9i_BFu8ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu1i, BFu9i_BFu8ll_BFu1i)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu1ll");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu9i_BFu8ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu1ll, BFu9i_BFu8ll_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu1s");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu1s");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu9i_BFu8ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu1s, BFu9i_BFu8ll_BFu1s)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu31i");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu8ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu31i");
    set_bf_and_test(lv, v3, 2, 1, 31, 1, "BFu9i_BFu8ll_BFu31i");
    set_bf_and_test(lv, v3, 2, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu8ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu31i, BFu9i_BFu8ll_BFu31i)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu8ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu31ll");
    set_bf_and_test(lv, v3, 2, 1, 31, 1, "BFu9i_BFu8ll_BFu31ll");
    set_bf_and_test(lv, v3, 2, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu8ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu31ll, BFu9i_BFu8ll_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu32i");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu32i");
    set_bf_and_test(lv, v3, 2, 1, 32, 1, "BFu9i_BFu8ll_BFu32i");
    set_bf_and_test(lv, v3, 2, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu8ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu32i, BFu9i_BFu8ll_BFu32i)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v3, 2, 1, 32, 1, "BFu9i_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v3, 2, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu8ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu32ll, BFu9i_BFu8ll_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu33()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu33");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu33");
    set_bf_and_test(lv, v3, 2, 1, 33, 1, "BFu9i_BFu8ll_BFu33");
    set_bf_and_test(lv, v3, 2, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu8ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu33, BFu9i_BFu8ll_BFu33)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu7c");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu7c");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu9i_BFu8ll_BFu7c");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu8ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu7c, BFu9i_BFu8ll_BFu7c)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu7i");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu7i");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu9i_BFu8ll_BFu7i");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu8ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu7i, BFu9i_BFu8ll_BFu7i)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu7ll");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu9i_BFu8ll_BFu7ll");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu8ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu7ll, BFu9i_BFu8ll_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu7s");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu7s");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu9i_BFu8ll_BFu7s");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu8ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu7s, BFu9i_BFu8ll_BFu7s)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu8c");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu9i_BFu8ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu8c, BFu9i_BFu8ll_BFu8c)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu8i");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu9i_BFu8ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu8i, BFu9i_BFu8ll_BFu8i)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu9i_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu8ll, BFu9i_BFu8ll_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu8s");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu9i_BFu8ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu8s, BFu9i_BFu8ll_BFu8s)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu9i_BFu8ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu9i, BFu9i_BFu8ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu9i_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu9ll, BFu9i_BFu8ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu8ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu8ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFu8ll_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu9i_BFu8ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_BFu9s, BFu9i_BFu8ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFu8ll_C()
{
  {
    init_simple_test("BFu9i_BFu8ll_C");
    static STRUCT_IF_C BFu9i_BFu8ll_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_C");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_C");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_C");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_C, BFu9i_BFu8ll_C)
//============================================================================



static void Test_BFu9i_BFu8ll_D()
{
  {
    init_simple_test("BFu9i_BFu8ll_D");
    static STRUCT_IF_C BFu9i_BFu8ll_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu8ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_D");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_D");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_D");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_D, BFu9i_BFu8ll_D)
//============================================================================



static void Test_BFu9i_BFu8ll_F()
{
  {
    init_simple_test("BFu9i_BFu8ll_F");
    static STRUCT_IF_C BFu9i_BFu8ll_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_F");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_F");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_F");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_F, BFu9i_BFu8ll_F)
//============================================================================



static void Test_BFu9i_BFu8ll_I()
{
  {
    init_simple_test("BFu9i_BFu8ll_I");
    static STRUCT_IF_C BFu9i_BFu8ll_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_I");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_I");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_I");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_I, BFu9i_BFu8ll_I)
//============================================================================



static void Test_BFu9i_BFu8ll_Ip()
{
  {
    init_simple_test("BFu9i_BFu8ll_Ip");
    static STRUCT_IF_C BFu9i_BFu8ll_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu8ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_Ip");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_Ip, BFu9i_BFu8ll_Ip)
//============================================================================



static void Test_BFu9i_BFu8ll_L()
{
  {
    init_simple_test("BFu9i_BFu8ll_L");
    static STRUCT_IF_C BFu9i_BFu8ll_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu8ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_L");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_L");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_L");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_L, BFu9i_BFu8ll_L)
//============================================================================



static void Test_BFu9i_BFu8ll_S()
{
  {
    init_simple_test("BFu9i_BFu8ll_S");
    static STRUCT_IF_C BFu9i_BFu8ll_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_S");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_S");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_S");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_S, BFu9i_BFu8ll_S)
//============================================================================



static void Test_BFu9i_BFu8ll_Uc()
{
  {
    init_simple_test("BFu9i_BFu8ll_Uc");
    static STRUCT_IF_C BFu9i_BFu8ll_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_Uc");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_Uc, BFu9i_BFu8ll_Uc)
//============================================================================



static void Test_BFu9i_BFu8ll_Ui()
{
  {
    init_simple_test("BFu9i_BFu8ll_Ui");
    static STRUCT_IF_C BFu9i_BFu8ll_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_Ui");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_Ui, BFu9i_BFu8ll_Ui)
//============================================================================



static void Test_BFu9i_BFu8ll_Ul()
{
  {
    init_simple_test("BFu9i_BFu8ll_Ul");
    static STRUCT_IF_C BFu9i_BFu8ll_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu8ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_Ul");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_Ul, BFu9i_BFu8ll_Ul)
//============================================================================



static void Test_BFu9i_BFu8ll_Us()
{
  {
    init_simple_test("BFu9i_BFu8ll_Us");
    static STRUCT_IF_C BFu9i_BFu8ll_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_Us");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_Us, BFu9i_BFu8ll_Us)
//============================================================================



static void Test_BFu9i_BFu8ll_Vp()
{
  {
    init_simple_test("BFu9i_BFu8ll_Vp");
    static STRUCT_IF_C BFu9i_BFu8ll_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu8ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8ll_Vp");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8ll_Vp, BFu9i_BFu8ll_Vp)
//============================================================================



static void Test_BFu9i_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu8s");
    static STRUCT_IF_C BFu9i_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s, BFu9i_BFu8s)
//============================================================================



static void Test_BFu9i_BFu8s_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu15i");
    static STRUCT_IF_C BFu9i_BFu8s_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu15i");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu9i_BFu8s_BFu15i");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu8s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu15i, BFu9i_BFu8s_BFu15i)
//============================================================================



static void Test_BFu9i_BFu8s_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu8s_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu15ll");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu9i_BFu8s_BFu15ll");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu8s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu15ll, BFu9i_BFu8s_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu8s_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu15s");
    static STRUCT_IF_C BFu9i_BFu8s_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu15s");
    set_bf_and_test(lv, v3, 2, 1, 15, 1, "BFu9i_BFu8s_BFu15s");
    set_bf_and_test(lv, v3, 2, 1, 15, hide_ull(1LL<<14), "BFu9i_BFu8s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu15s, BFu9i_BFu8s_BFu15s)
//============================================================================



static void Test_BFu9i_BFu8s_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu16i");
    static STRUCT_IF_C BFu9i_BFu8s_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu16i");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu9i_BFu8s_BFu16i");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu8s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu16i, BFu9i_BFu8s_BFu16i)
//============================================================================



static void Test_BFu9i_BFu8s_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu8s_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu16ll");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu9i_BFu8s_BFu16ll");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu8s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu16ll, BFu9i_BFu8s_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu8s_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu16s");
    static STRUCT_IF_C BFu9i_BFu8s_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu16s");
    set_bf_and_test(lv, v3, 2, 1, 16, 1, "BFu9i_BFu8s_BFu16s");
    set_bf_and_test(lv, v3, 2, 1, 16, hide_ull(1LL<<15), "BFu9i_BFu8s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu16s, BFu9i_BFu8s_BFu16s)
//============================================================================



static void Test_BFu9i_BFu8s_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu17i");
    static STRUCT_IF_C BFu9i_BFu8s_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu17i");
    set_bf_and_test(lv, v3, 2, 1, 17, 1, "BFu9i_BFu8s_BFu17i");
    set_bf_and_test(lv, v3, 2, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu8s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu17i, BFu9i_BFu8s_BFu17i)
//============================================================================



static void Test_BFu9i_BFu8s_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu8s_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu17ll");
    set_bf_and_test(lv, v3, 2, 1, 17, 1, "BFu9i_BFu8s_BFu17ll");
    set_bf_and_test(lv, v3, 2, 1, 17, hide_ull(1LL<<16), "BFu9i_BFu8s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu17ll, BFu9i_BFu8s_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu8s_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu1c");
    static STRUCT_IF_C BFu9i_BFu8s_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu1c");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu9i_BFu8s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu1c, BFu9i_BFu8s_BFu1c)
//============================================================================



static void Test_BFu9i_BFu8s_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu1i");
    static STRUCT_IF_C BFu9i_BFu8s_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu1i");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu9i_BFu8s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu1i, BFu9i_BFu8s_BFu1i)
//============================================================================



static void Test_BFu9i_BFu8s_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu8s_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu1ll");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu9i_BFu8s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu1ll, BFu9i_BFu8s_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu8s_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu1s");
    static STRUCT_IF_C BFu9i_BFu8s_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu1s");
    set_bf_and_test(lv, v3, 2, 1, 1, 1, "BFu9i_BFu8s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu1s, BFu9i_BFu8s_BFu1s)
//============================================================================



static void Test_BFu9i_BFu8s_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu31i");
    static STRUCT_IF_C BFu9i_BFu8s_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu8s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu31i");
    set_bf_and_test(lv, v3, 2, 1, 31, 1, "BFu9i_BFu8s_BFu31i");
    set_bf_and_test(lv, v3, 2, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu8s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu31i, BFu9i_BFu8s_BFu31i)
//============================================================================



static void Test_BFu9i_BFu8s_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu8s_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_BFu8s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu31ll");
    set_bf_and_test(lv, v3, 2, 1, 31, 1, "BFu9i_BFu8s_BFu31ll");
    set_bf_and_test(lv, v3, 2, 1, 31, hide_ull(1LL<<30), "BFu9i_BFu8s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu31ll, BFu9i_BFu8s_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu8s_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu32i");
    static STRUCT_IF_C BFu9i_BFu8s_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu32i");
    set_bf_and_test(lv, v3, 2, 1, 32, 1, "BFu9i_BFu8s_BFu32i");
    set_bf_and_test(lv, v3, 2, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu8s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu32i, BFu9i_BFu8s_BFu32i)
//============================================================================



static void Test_BFu9i_BFu8s_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu8s_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu32ll");
    set_bf_and_test(lv, v3, 2, 1, 32, 1, "BFu9i_BFu8s_BFu32ll");
    set_bf_and_test(lv, v3, 2, 1, 32, hide_ull(1LL<<31), "BFu9i_BFu8s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu32ll, BFu9i_BFu8s_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu8s_BFu33()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu33");
    static STRUCT_IF_C BFu9i_BFu8s_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu33");
    set_bf_and_test(lv, v3, 2, 1, 33, 1, "BFu9i_BFu8s_BFu33");
    set_bf_and_test(lv, v3, 2, 1, 33, hide_ull(1LL<<32), "BFu9i_BFu8s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu33, BFu9i_BFu8s_BFu33)
//============================================================================



static void Test_BFu9i_BFu8s_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu7c");
    static STRUCT_IF_C BFu9i_BFu8s_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu7c");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu9i_BFu8s_BFu7c");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu8s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu7c, BFu9i_BFu8s_BFu7c)
//============================================================================



static void Test_BFu9i_BFu8s_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu7i");
    static STRUCT_IF_C BFu9i_BFu8s_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu7i");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu9i_BFu8s_BFu7i");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu8s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu7i, BFu9i_BFu8s_BFu7i)
//============================================================================



static void Test_BFu9i_BFu8s_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu8s_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu7ll");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu9i_BFu8s_BFu7ll");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu8s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu7ll, BFu9i_BFu8s_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu8s_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu7s");
    static STRUCT_IF_C BFu9i_BFu8s_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu8s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu7s");
    set_bf_and_test(lv, v3, 2, 1, 7, 1, "BFu9i_BFu8s_BFu7s");
    set_bf_and_test(lv, v3, 2, 1, 7, hide_ull(1LL<<6), "BFu9i_BFu8s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu7s, BFu9i_BFu8s_BFu7s)
//============================================================================



static void Test_BFu9i_BFu8s_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu8c");
    static STRUCT_IF_C BFu9i_BFu8s_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu8c");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu9i_BFu8s_BFu8c");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu8c, BFu9i_BFu8s_BFu8c)
//============================================================================



static void Test_BFu9i_BFu8s_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu8i");
    static STRUCT_IF_C BFu9i_BFu8s_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu8i");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu9i_BFu8s_BFu8i");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu8i, BFu9i_BFu8s_BFu8i)
//============================================================================



static void Test_BFu9i_BFu8s_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu8s_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu9i_BFu8s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu8ll, BFu9i_BFu8s_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu8s_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu8s");
    static STRUCT_IF_C BFu9i_BFu8s_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu8s");
    set_bf_and_test(lv, v3, 2, 1, 8, 1, "BFu9i_BFu8s_BFu8s");
    set_bf_and_test(lv, v3, 2, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu8s, BFu9i_BFu8s_BFu8s)
//============================================================================



static void Test_BFu9i_BFu8s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu9i");
    static STRUCT_IF_C BFu9i_BFu8s_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu9i");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu9i_BFu8s_BFu9i");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu9i, BFu9i_BFu8s_BFu9i)
//============================================================================



static void Test_BFu9i_BFu8s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu8s_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu9i_BFu8s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu9ll, BFu9i_BFu8s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu8s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu8s_BFu9s");
    static STRUCT_IF_C BFu9i_BFu8s_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_BFu9s");
    set_bf_and_test(lv, v3, 2, 1, 9, 1, "BFu9i_BFu8s_BFu9s");
    set_bf_and_test(lv, v3, 2, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_BFu9s, BFu9i_BFu8s_BFu9s)
//============================================================================



static void Test_BFu9i_BFu8s_C()
{
  {
    init_simple_test("BFu9i_BFu8s_C");
    static STRUCT_IF_C BFu9i_BFu8s_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8s_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_C");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_C");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_C");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_C, BFu9i_BFu8s_C)
//============================================================================



static void Test_BFu9i_BFu8s_D()
{
  {
    init_simple_test("BFu9i_BFu8s_D");
    static STRUCT_IF_C BFu9i_BFu8s_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu8s_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_D");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_D");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_D");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_D, BFu9i_BFu8s_D)
//============================================================================



static void Test_BFu9i_BFu8s_F()
{
  {
    init_simple_test("BFu9i_BFu8s_F");
    static STRUCT_IF_C BFu9i_BFu8s_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8s_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_F");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_F");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_F");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_F, BFu9i_BFu8s_F)
//============================================================================



static void Test_BFu9i_BFu8s_I()
{
  {
    init_simple_test("BFu9i_BFu8s_I");
    static STRUCT_IF_C BFu9i_BFu8s_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8s_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_I");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_I");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_I");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_I, BFu9i_BFu8s_I)
//============================================================================



static void Test_BFu9i_BFu8s_Ip()
{
  {
    init_simple_test("BFu9i_BFu8s_Ip");
    static STRUCT_IF_C BFu9i_BFu8s_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu8s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_Ip");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_Ip");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_Ip");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_Ip, BFu9i_BFu8s_Ip)
//============================================================================



static void Test_BFu9i_BFu8s_L()
{
  {
    init_simple_test("BFu9i_BFu8s_L");
    static STRUCT_IF_C BFu9i_BFu8s_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu8s_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_L");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_L");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_L");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_L, BFu9i_BFu8s_L)
//============================================================================



static void Test_BFu9i_BFu8s_S()
{
  {
    init_simple_test("BFu9i_BFu8s_S");
    static STRUCT_IF_C BFu9i_BFu8s_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8s_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_S");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_S");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_S");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_S, BFu9i_BFu8s_S)
//============================================================================



static void Test_BFu9i_BFu8s_Uc()
{
  {
    init_simple_test("BFu9i_BFu8s_Uc");
    static STRUCT_IF_C BFu9i_BFu8s_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu8s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_Uc");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_Uc");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_Uc");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_Uc, BFu9i_BFu8s_Uc)
//============================================================================



static void Test_BFu9i_BFu8s_Ui()
{
  {
    init_simple_test("BFu9i_BFu8s_Ui");
    static STRUCT_IF_C BFu9i_BFu8s_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu8s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_Ui");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_Ui");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_Ui");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_Ui, BFu9i_BFu8s_Ui)
//============================================================================



static void Test_BFu9i_BFu8s_Ul()
{
  {
    init_simple_test("BFu9i_BFu8s_Ul");
    static STRUCT_IF_C BFu9i_BFu8s_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu8s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_Ul");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_Ul");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_Ul");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_Ul, BFu9i_BFu8s_Ul)
//============================================================================



static void Test_BFu9i_BFu8s_Us()
{
  {
    init_simple_test("BFu9i_BFu8s_Us");
    static STRUCT_IF_C BFu9i_BFu8s_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu8s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_Us");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_Us");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_Us");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_Us, BFu9i_BFu8s_Us)
//============================================================================



static void Test_BFu9i_BFu8s_Vp()
{
  {
    init_simple_test("BFu9i_BFu8s_Vp");
    static STRUCT_IF_C BFu9i_BFu8s_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu8s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu8s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu8s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu8s_Vp");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "BFu9i_BFu8s_Vp");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "BFu9i_BFu8s_Vp");
    check_field_offset(lv, v3, 3, "BFu9i_BFu8s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu8s_Vp, BFu9i_BFu8s_Vp)
//============================================================================



static void Test_BFu9i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i, BFu9i_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9i, BFu9i_BFu9i_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9i_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9i_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9i_BFs9i, BFu9i_BFu9i_BFs9i_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9i_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9i_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9i_BFs9ll, BFu9i_BFu9i_BFs9i_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9i_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9i_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9i_BFs9s, BFu9i_BFu9i_BFs9i_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9i_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9i_BFu9i, BFu9i_BFu9i_BFs9i_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9i_BFu9ll, BFu9i_BFu9i_BFs9i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9i_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9i_BFu9s, BFu9i_BFu9i_BFs9i_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9ll, BFu9i_BFu9i_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9ll_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9ll_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9ll_BFs9i, BFu9i_BFu9i_BFs9ll_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9ll_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9ll_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9ll_BFs9ll, BFu9i_BFu9i_BFs9ll_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9ll_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9ll_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9ll_BFs9s, BFu9i_BFu9i_BFs9ll_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9ll_BFu9i, BFu9i_BFu9i_BFs9ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9ll_BFu9ll, BFu9i_BFu9i_BFs9ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9ll_BFu9s, BFu9i_BFu9i_BFs9ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9s, BFu9i_BFu9i_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9s_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9s_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9s_BFs9i, BFu9i_BFu9i_BFs9s_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9s_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9s_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9s_BFs9ll, BFu9i_BFu9i_BFs9s_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9s_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9s_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9s_BFs9s, BFu9i_BFu9i_BFs9s_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9s_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9s_BFu9i, BFu9i_BFu9i_BFs9s_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9s_BFu9ll, BFu9i_BFu9i_BFs9s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFs9s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFs9s_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9i_BFs9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFs9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFs9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFs9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFs9s_BFu9s, BFu9i_BFu9i_BFs9s_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9i_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu15i");
    static STRUCT_IF_C BFu9i_BFu9i_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu15i");
    set_bf_and_test(lv, v3, 2, 2, 15, 1, "BFu9i_BFu9i_BFu15i");
    set_bf_and_test(lv, v3, 2, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu9i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu15i, BFu9i_BFu9i_BFu15i)
//============================================================================



static void Test_BFu9i_BFu9i_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu15ll");
    set_bf_and_test(lv, v3, 2, 2, 15, 1, "BFu9i_BFu9i_BFu15ll");
    set_bf_and_test(lv, v3, 2, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu9i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu15ll, BFu9i_BFu9i_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu15s");
    static STRUCT_IF_C BFu9i_BFu9i_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu15s");
    set_bf_and_test(lv, v3, 2, 2, 15, 1, "BFu9i_BFu9i_BFu15s");
    set_bf_and_test(lv, v3, 2, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu9i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu15s, BFu9i_BFu9i_BFu15s)
//============================================================================



static void Test_BFu9i_BFu9i_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu16i");
    static STRUCT_IF_C BFu9i_BFu9i_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu16i");
    set_bf_and_test(lv, v3, 2, 2, 16, 1, "BFu9i_BFu9i_BFu16i");
    set_bf_and_test(lv, v3, 2, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu9i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu16i, BFu9i_BFu9i_BFu16i)
//============================================================================



static void Test_BFu9i_BFu9i_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu16ll");
    set_bf_and_test(lv, v3, 2, 2, 16, 1, "BFu9i_BFu9i_BFu16ll");
    set_bf_and_test(lv, v3, 2, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu9i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu16ll, BFu9i_BFu9i_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu16s");
    static STRUCT_IF_C BFu9i_BFu9i_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu16s");
    set_bf_and_test(lv, v3, 2, 2, 16, 1, "BFu9i_BFu9i_BFu16s");
    set_bf_and_test(lv, v3, 2, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu9i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu16s, BFu9i_BFu9i_BFu16s)
//============================================================================



static void Test_BFu9i_BFu9i_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu17i");
    static STRUCT_IF_C BFu9i_BFu9i_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu17i");
    set_bf_and_test(lv, v3, 2, 2, 17, 1, "BFu9i_BFu9i_BFu17i");
    set_bf_and_test(lv, v3, 2, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu9i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu17i, BFu9i_BFu9i_BFu17i)
//============================================================================



static void Test_BFu9i_BFu9i_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu17ll");
    set_bf_and_test(lv, v3, 2, 2, 17, 1, "BFu9i_BFu9i_BFu17ll");
    set_bf_and_test(lv, v3, 2, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu9i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu17ll, BFu9i_BFu9i_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu1c");
    static STRUCT_IF_C BFu9i_BFu9i_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu9i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu1c");
    set_bf_and_test(lv, v3, 2, 2, 1, 1, "BFu9i_BFu9i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu1c, BFu9i_BFu9i_BFu1c)
//============================================================================



static void Test_BFu9i_BFu9i_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu1i");
    static STRUCT_IF_C BFu9i_BFu9i_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu9i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu1i");
    set_bf_and_test(lv, v3, 2, 2, 1, 1, "BFu9i_BFu9i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu1i, BFu9i_BFu9i_BFu1i)
//============================================================================



static void Test_BFu9i_BFu9i_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu9i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu1ll");
    set_bf_and_test(lv, v3, 2, 2, 1, 1, "BFu9i_BFu9i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu1ll, BFu9i_BFu9i_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu1s");
    static STRUCT_IF_C BFu9i_BFu9i_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu9i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu1s");
    set_bf_and_test(lv, v3, 2, 2, 1, 1, "BFu9i_BFu9i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu1s, BFu9i_BFu9i_BFu1s)
//============================================================================



static void Test_BFu9i_BFu9i_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu31i");
    static STRUCT_IF_C BFu9i_BFu9i_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu31i");
    set_bf_and_test(lv, v3, 2, 2, 31, 1, "BFu9i_BFu9i_BFu31i");
    set_bf_and_test(lv, v3, 2, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu9i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu31i, BFu9i_BFu9i_BFu31i)
//============================================================================



static void Test_BFu9i_BFu9i_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu31ll");
    set_bf_and_test(lv, v3, 2, 2, 31, 1, "BFu9i_BFu9i_BFu31ll");
    set_bf_and_test(lv, v3, 2, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu9i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu31ll, BFu9i_BFu9i_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu32i");
    static STRUCT_IF_C BFu9i_BFu9i_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu32i");
    set_bf_and_test(lv, v3, 2, 2, 32, 1, "BFu9i_BFu9i_BFu32i");
    set_bf_and_test(lv, v3, 2, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu9i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu32i, BFu9i_BFu9i_BFu32i)
//============================================================================



static void Test_BFu9i_BFu9i_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu32ll");
    set_bf_and_test(lv, v3, 2, 2, 32, 1, "BFu9i_BFu9i_BFu32ll");
    set_bf_and_test(lv, v3, 2, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu9i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu32ll, BFu9i_BFu9i_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFu33()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu33");
    static STRUCT_IF_C BFu9i_BFu9i_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu33");
    set_bf_and_test(lv, v3, 2, 2, 33, 1, "BFu9i_BFu9i_BFu33");
    set_bf_and_test(lv, v3, 2, 2, 33, hide_ull(1LL<<32), "BFu9i_BFu9i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu33, BFu9i_BFu9i_BFu33)
//============================================================================



static void Test_BFu9i_BFu9i_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu7c");
    static STRUCT_IF_C BFu9i_BFu9i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu7c");
    set_bf_and_test(lv, v3, 2, 2, 7, 1, "BFu9i_BFu9i_BFu7c");
    set_bf_and_test(lv, v3, 2, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu9i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu7c, BFu9i_BFu9i_BFu7c)
//============================================================================



static void Test_BFu9i_BFu9i_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu7i");
    static STRUCT_IF_C BFu9i_BFu9i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu7i");
    set_bf_and_test(lv, v3, 2, 2, 7, 1, "BFu9i_BFu9i_BFu7i");
    set_bf_and_test(lv, v3, 2, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu9i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu7i, BFu9i_BFu9i_BFu7i)
//============================================================================



static void Test_BFu9i_BFu9i_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu7ll");
    set_bf_and_test(lv, v3, 2, 2, 7, 1, "BFu9i_BFu9i_BFu7ll");
    set_bf_and_test(lv, v3, 2, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu9i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu7ll, BFu9i_BFu9i_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu7s");
    static STRUCT_IF_C BFu9i_BFu9i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu7s");
    set_bf_and_test(lv, v3, 2, 2, 7, 1, "BFu9i_BFu9i_BFu7s");
    set_bf_and_test(lv, v3, 2, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu9i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu7s, BFu9i_BFu9i_BFu7s)
//============================================================================



static void Test_BFu9i_BFu9i_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu8c");
    static STRUCT_IF_C BFu9i_BFu9i_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu8c");
    set_bf_and_test(lv, v3, 2, 2, 8, 1, "BFu9i_BFu9i_BFu8c");
    set_bf_and_test(lv, v3, 2, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu9i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu8c, BFu9i_BFu9i_BFu8c)
//============================================================================



static void Test_BFu9i_BFu9i_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu8i");
    static STRUCT_IF_C BFu9i_BFu9i_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu8i");
    set_bf_and_test(lv, v3, 2, 2, 8, 1, "BFu9i_BFu9i_BFu8i");
    set_bf_and_test(lv, v3, 2, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu9i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu8i, BFu9i_BFu9i_BFu8i)
//============================================================================



static void Test_BFu9i_BFu9i_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 2, 8, 1, "BFu9i_BFu9i_BFu8ll");
    set_bf_and_test(lv, v3, 2, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu9i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu8ll, BFu9i_BFu9i_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu8s");
    static STRUCT_IF_C BFu9i_BFu9i_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu8s");
    set_bf_and_test(lv, v3, 2, 2, 8, 1, "BFu9i_BFu9i_BFu8s");
    set_bf_and_test(lv, v3, 2, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu9i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu8s, BFu9i_BFu9i_BFu8s)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9i, BFu9i_BFu9i_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9i_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9i_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFu9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9i_BFs9i, BFu9i_BFu9i_BFu9i_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9i_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9i_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFu9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9i_BFs9ll, BFu9i_BFu9i_BFu9i_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9i_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9i_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFu9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9i_BFs9s, BFu9i_BFu9i_BFu9i_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9i_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9i_BFu9i, BFu9i_BFu9i_BFu9i_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9i_BFu9ll, BFu9i_BFu9i_BFu9i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9i_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9i_BFu9s, BFu9i_BFu9i_BFu9i_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9ll, BFu9i_BFu9i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9ll_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9ll_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9ll_BFs9i, BFu9i_BFu9i_BFu9ll_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9ll_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9ll_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9ll_BFs9ll, BFu9i_BFu9i_BFu9ll_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9ll_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9ll_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9ll_BFs9s, BFu9i_BFu9i_BFu9ll_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9ll_BFu9i, BFu9i_BFu9i_BFu9ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9ll_BFu9ll, BFu9i_BFu9i_BFu9ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9ll_BFu9s, BFu9i_BFu9i_BFu9ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9s, BFu9i_BFu9i_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9s_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9s_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFu9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9s_BFs9i, BFu9i_BFu9i_BFu9s_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9s_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9s_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFu9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9s_BFs9ll, BFu9i_BFu9i_BFu9s_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9s_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9s_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9i_BFu9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9s_BFs9s, BFu9i_BFu9i_BFu9s_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9s_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9s_BFu9i, BFu9i_BFu9i_BFu9s_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9s_BFu9ll, BFu9i_BFu9i_BFu9s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9i_BFu9s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9i_BFu9s_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9i_BFu9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_BFu9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_BFu9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_BFu9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_BFu9s_BFu9s, BFu9i_BFu9i_BFu9s_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9i_C()
{
  {
    init_simple_test("BFu9i_BFu9i_C");
    static STRUCT_IF_C BFu9i_BFu9i_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_C");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_C");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_C");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_C, BFu9i_BFu9i_C)
//============================================================================



static void Test_BFu9i_BFu9i_D()
{
  {
    init_simple_test("BFu9i_BFu9i_D");
    static STRUCT_IF_C BFu9i_BFu9i_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu9i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_D");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_D");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_D");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_D, BFu9i_BFu9i_D)
//============================================================================



static void Test_BFu9i_BFu9i_F()
{
  {
    init_simple_test("BFu9i_BFu9i_F");
    static STRUCT_IF_C BFu9i_BFu9i_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_F");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_F");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_F");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_F, BFu9i_BFu9i_F)
//============================================================================



static void Test_BFu9i_BFu9i_I()
{
  {
    init_simple_test("BFu9i_BFu9i_I");
    static STRUCT_IF_C BFu9i_BFu9i_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_I");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_I");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_I");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_I, BFu9i_BFu9i_I)
//============================================================================



static void Test_BFu9i_BFu9i_Ip()
{
  {
    init_simple_test("BFu9i_BFu9i_Ip");
    static STRUCT_IF_C BFu9i_BFu9i_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu9i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_Ip");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_Ip, BFu9i_BFu9i_Ip)
//============================================================================



static void Test_BFu9i_BFu9i_L()
{
  {
    init_simple_test("BFu9i_BFu9i_L");
    static STRUCT_IF_C BFu9i_BFu9i_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu9i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_L");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_L");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_L");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_L, BFu9i_BFu9i_L)
//============================================================================



static void Test_BFu9i_BFu9i_S()
{
  {
    init_simple_test("BFu9i_BFu9i_S");
    static STRUCT_IF_C BFu9i_BFu9i_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_S");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_S");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_S");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_S, BFu9i_BFu9i_S)
//============================================================================



static void Test_BFu9i_BFu9i_Uc()
{
  {
    init_simple_test("BFu9i_BFu9i_Uc");
    static STRUCT_IF_C BFu9i_BFu9i_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_Uc");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_Uc, BFu9i_BFu9i_Uc)
//============================================================================



static void Test_BFu9i_BFu9i_Ui()
{
  {
    init_simple_test("BFu9i_BFu9i_Ui");
    static STRUCT_IF_C BFu9i_BFu9i_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_Ui");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_Ui, BFu9i_BFu9i_Ui)
//============================================================================



static void Test_BFu9i_BFu9i_Ul()
{
  {
    init_simple_test("BFu9i_BFu9i_Ul");
    static STRUCT_IF_C BFu9i_BFu9i_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu9i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_Ul");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_Ul, BFu9i_BFu9i_Ul)
//============================================================================



static void Test_BFu9i_BFu9i_Us()
{
  {
    init_simple_test("BFu9i_BFu9i_Us");
    static STRUCT_IF_C BFu9i_BFu9i_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_Us");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_Us");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_Us");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_Us, BFu9i_BFu9i_Us)
//============================================================================



static void Test_BFu9i_BFu9i_Vp()
{
  {
    init_simple_test("BFu9i_BFu9i_Vp");
    static STRUCT_IF_C BFu9i_BFu9i_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu9i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9i_Vp");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9i_Vp, BFu9i_BFu9i_Vp)
//============================================================================



static void Test_BFu9i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll, BFu9i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9i, BFu9i_BFu9ll_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9i_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9i_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9i_BFs9i, BFu9i_BFu9ll_BFs9i_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9i_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9i_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9i_BFs9ll, BFu9i_BFu9ll_BFs9i_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9i_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9i_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9i_BFs9s, BFu9i_BFu9ll_BFs9i_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9i_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9i_BFu9i, BFu9i_BFu9ll_BFs9i_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9i_BFu9ll, BFu9i_BFu9ll_BFs9i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9i_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9i_BFu9s, BFu9i_BFu9ll_BFs9i_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9ll, BFu9i_BFu9ll_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9ll_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9ll_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9ll_BFs9i, BFu9i_BFu9ll_BFs9ll_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9ll_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9ll_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9ll_BFs9ll, BFu9i_BFu9ll_BFs9ll_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9ll_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9ll_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9ll_BFs9s, BFu9i_BFu9ll_BFs9ll_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9ll_BFu9i, BFu9i_BFu9ll_BFs9ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9ll_BFu9ll, BFu9i_BFu9ll_BFs9ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9ll_BFu9s, BFu9i_BFu9ll_BFs9ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9s, BFu9i_BFu9ll_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9s_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9s_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9s_BFs9i, BFu9i_BFu9ll_BFs9s_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9s_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9s_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9s_BFs9ll, BFu9i_BFu9ll_BFs9s_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9s_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9s_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9s_BFs9s, BFu9i_BFu9ll_BFs9s_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9s_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9s_BFu9i, BFu9i_BFu9ll_BFs9s_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9s_BFu9ll, BFu9i_BFu9ll_BFs9s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFs9s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFs9s_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFs9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFs9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFs9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFs9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFs9s_BFu9s, BFu9i_BFu9ll_BFs9s_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu15i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu15i");
    set_bf_and_test(lv, v3, 2, 2, 15, 1, "BFu9i_BFu9ll_BFu15i");
    set_bf_and_test(lv, v3, 2, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu9ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu15i, BFu9i_BFu9ll_BFu15i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v3, 2, 2, 15, 1, "BFu9i_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v3, 2, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu9ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu15ll, BFu9i_BFu9ll_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu15s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu15s");
    set_bf_and_test(lv, v3, 2, 2, 15, 1, "BFu9i_BFu9ll_BFu15s");
    set_bf_and_test(lv, v3, 2, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu9ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu15s, BFu9i_BFu9ll_BFu15s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu16i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu16i");
    set_bf_and_test(lv, v3, 2, 2, 16, 1, "BFu9i_BFu9ll_BFu16i");
    set_bf_and_test(lv, v3, 2, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu9ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu16i, BFu9i_BFu9ll_BFu16i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v3, 2, 2, 16, 1, "BFu9i_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v3, 2, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu9ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu16ll, BFu9i_BFu9ll_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu16s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu16s");
    set_bf_and_test(lv, v3, 2, 2, 16, 1, "BFu9i_BFu9ll_BFu16s");
    set_bf_and_test(lv, v3, 2, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu9ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu16s, BFu9i_BFu9ll_BFu16s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu17i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu17i");
    set_bf_and_test(lv, v3, 2, 2, 17, 1, "BFu9i_BFu9ll_BFu17i");
    set_bf_and_test(lv, v3, 2, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu9ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu17i, BFu9i_BFu9ll_BFu17i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v3, 2, 2, 17, 1, "BFu9i_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v3, 2, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu9ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu17ll, BFu9i_BFu9ll_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu1c");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu9ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu1c");
    set_bf_and_test(lv, v3, 2, 2, 1, 1, "BFu9i_BFu9ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu1c, BFu9i_BFu9ll_BFu1c)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu1i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu9ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu1i");
    set_bf_and_test(lv, v3, 2, 2, 1, 1, "BFu9i_BFu9ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu1i, BFu9i_BFu9ll_BFu1i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu9ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v3, 2, 2, 1, 1, "BFu9i_BFu9ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu1ll, BFu9i_BFu9ll_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu1s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu9ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu1s");
    set_bf_and_test(lv, v3, 2, 2, 1, 1, "BFu9i_BFu9ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu1s, BFu9i_BFu9ll_BFu1s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu31i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu31i");
    set_bf_and_test(lv, v3, 2, 2, 31, 1, "BFu9i_BFu9ll_BFu31i");
    set_bf_and_test(lv, v3, 2, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu9ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu31i, BFu9i_BFu9ll_BFu31i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v3, 2, 2, 31, 1, "BFu9i_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v3, 2, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu9ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu31ll, BFu9i_BFu9ll_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu32i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu32i");
    set_bf_and_test(lv, v3, 2, 2, 32, 1, "BFu9i_BFu9ll_BFu32i");
    set_bf_and_test(lv, v3, 2, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu9ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu32i, BFu9i_BFu9ll_BFu32i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v3, 2, 2, 32, 1, "BFu9i_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v3, 2, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu9ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu32ll, BFu9i_BFu9ll_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu33()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu33");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu33");
    set_bf_and_test(lv, v3, 2, 2, 33, 1, "BFu9i_BFu9ll_BFu33");
    set_bf_and_test(lv, v3, 2, 2, 33, hide_ull(1LL<<32), "BFu9i_BFu9ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu33, BFu9i_BFu9ll_BFu33)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu7c");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu7c");
    set_bf_and_test(lv, v3, 2, 2, 7, 1, "BFu9i_BFu9ll_BFu7c");
    set_bf_and_test(lv, v3, 2, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu9ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu7c, BFu9i_BFu9ll_BFu7c)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu7i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu7i");
    set_bf_and_test(lv, v3, 2, 2, 7, 1, "BFu9i_BFu9ll_BFu7i");
    set_bf_and_test(lv, v3, 2, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu9ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu7i, BFu9i_BFu9ll_BFu7i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v3, 2, 2, 7, 1, "BFu9i_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v3, 2, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu9ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu7ll, BFu9i_BFu9ll_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu7s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu7s");
    set_bf_and_test(lv, v3, 2, 2, 7, 1, "BFu9i_BFu9ll_BFu7s");
    set_bf_and_test(lv, v3, 2, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu9ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu7s, BFu9i_BFu9ll_BFu7s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu8c");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 2, 8, 1, "BFu9i_BFu9ll_BFu8c");
    set_bf_and_test(lv, v3, 2, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu9ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu8c, BFu9i_BFu9ll_BFu8c)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu8i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 2, 8, 1, "BFu9i_BFu9ll_BFu8i");
    set_bf_and_test(lv, v3, 2, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu9ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu8i, BFu9i_BFu9ll_BFu8i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 2, 8, 1, "BFu9i_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v3, 2, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu9ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu8ll, BFu9i_BFu9ll_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu8s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 2, 8, 1, "BFu9i_BFu9ll_BFu8s");
    set_bf_and_test(lv, v3, 2, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu9ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu8s, BFu9i_BFu9ll_BFu8s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9i, BFu9i_BFu9ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9i_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9i_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9i_BFs9i, BFu9i_BFu9ll_BFu9i_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9i_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9i_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9i_BFs9ll, BFu9i_BFu9ll_BFu9i_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9i_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9i_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9i_BFs9s, BFu9i_BFu9ll_BFu9i_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9i_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9i_BFu9i, BFu9i_BFu9ll_BFu9i_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9i_BFu9ll, BFu9i_BFu9ll_BFu9i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9i_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9i_BFu9s, BFu9i_BFu9ll_BFu9i_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9ll, BFu9i_BFu9ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9ll_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9ll_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9ll_BFs9i, BFu9i_BFu9ll_BFu9ll_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9ll_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9ll_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9ll_BFs9ll, BFu9i_BFu9ll_BFu9ll_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9ll_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9ll_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9ll_BFs9s, BFu9i_BFu9ll_BFu9ll_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9ll_BFu9i, BFu9i_BFu9ll_BFu9ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9ll_BFu9ll, BFu9i_BFu9ll_BFu9ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9ll_BFu9s, BFu9i_BFu9ll_BFu9ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9s, BFu9i_BFu9ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9s_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9s_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9s_BFs9i, BFu9i_BFu9ll_BFu9s_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9s_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9s_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9s_BFs9ll, BFu9i_BFu9ll_BFu9s_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9s_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9s_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9s_BFs9s, BFu9i_BFu9ll_BFu9s_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9s_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9s_BFu9i, BFu9i_BFu9ll_BFu9s_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9s_BFu9ll, BFu9i_BFu9ll_BFu9s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9ll_BFu9s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9ll_BFu9s_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9ll_BFu9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_BFu9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_BFu9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_BFu9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_BFu9s_BFu9s, BFu9i_BFu9ll_BFu9s_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9ll_C()
{
  {
    init_simple_test("BFu9i_BFu9ll_C");
    static STRUCT_IF_C BFu9i_BFu9ll_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_C");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_C");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_C");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_C, BFu9i_BFu9ll_C)
//============================================================================



static void Test_BFu9i_BFu9ll_D()
{
  {
    init_simple_test("BFu9i_BFu9ll_D");
    static STRUCT_IF_C BFu9i_BFu9ll_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu9ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_D");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_D");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_D");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_D, BFu9i_BFu9ll_D)
//============================================================================



static void Test_BFu9i_BFu9ll_F()
{
  {
    init_simple_test("BFu9i_BFu9ll_F");
    static STRUCT_IF_C BFu9i_BFu9ll_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_F");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_F");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_F");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_F, BFu9i_BFu9ll_F)
//============================================================================



static void Test_BFu9i_BFu9ll_I()
{
  {
    init_simple_test("BFu9i_BFu9ll_I");
    static STRUCT_IF_C BFu9i_BFu9ll_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_I");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_I");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_I");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_I, BFu9i_BFu9ll_I)
//============================================================================



static void Test_BFu9i_BFu9ll_Ip()
{
  {
    init_simple_test("BFu9i_BFu9ll_Ip");
    static STRUCT_IF_C BFu9i_BFu9ll_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu9ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_Ip");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_Ip, BFu9i_BFu9ll_Ip)
//============================================================================



static void Test_BFu9i_BFu9ll_L()
{
  {
    init_simple_test("BFu9i_BFu9ll_L");
    static STRUCT_IF_C BFu9i_BFu9ll_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu9ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_L");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_L");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_L");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_L, BFu9i_BFu9ll_L)
//============================================================================



static void Test_BFu9i_BFu9ll_S()
{
  {
    init_simple_test("BFu9i_BFu9ll_S");
    static STRUCT_IF_C BFu9i_BFu9ll_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_S");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_S");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_S");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_S, BFu9i_BFu9ll_S)
//============================================================================



static void Test_BFu9i_BFu9ll_Uc()
{
  {
    init_simple_test("BFu9i_BFu9ll_Uc");
    static STRUCT_IF_C BFu9i_BFu9ll_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_Uc");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_Uc, BFu9i_BFu9ll_Uc)
//============================================================================



static void Test_BFu9i_BFu9ll_Ui()
{
  {
    init_simple_test("BFu9i_BFu9ll_Ui");
    static STRUCT_IF_C BFu9i_BFu9ll_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_Ui");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_Ui, BFu9i_BFu9ll_Ui)
//============================================================================



static void Test_BFu9i_BFu9ll_Ul()
{
  {
    init_simple_test("BFu9i_BFu9ll_Ul");
    static STRUCT_IF_C BFu9i_BFu9ll_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu9ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_Ul");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_Ul, BFu9i_BFu9ll_Ul)
//============================================================================



static void Test_BFu9i_BFu9ll_Us()
{
  {
    init_simple_test("BFu9i_BFu9ll_Us");
    static STRUCT_IF_C BFu9i_BFu9ll_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_Us");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_Us, BFu9i_BFu9ll_Us)
//============================================================================



static void Test_BFu9i_BFu9ll_Vp()
{
  {
    init_simple_test("BFu9i_BFu9ll_Vp");
    static STRUCT_IF_C BFu9i_BFu9ll_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu9ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9ll_Vp");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9ll_Vp, BFu9i_BFu9ll_Vp)
//============================================================================



static void Test_BFu9i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s, BFu9i_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9i, BFu9i_BFu9s_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9i_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9i_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9i_BFs9i, BFu9i_BFu9s_BFs9i_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9i_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9i_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9i_BFs9ll, BFu9i_BFu9s_BFs9i_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9i_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9i_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9i_BFs9s, BFu9i_BFu9s_BFs9i_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9i_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9i_BFu9i, BFu9i_BFu9s_BFs9i_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9i_BFu9ll, BFu9i_BFu9s_BFs9i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9i_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9i_BFu9s, BFu9i_BFu9s_BFs9i_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9ll, BFu9i_BFu9s_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9ll_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9ll_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9ll_BFs9i, BFu9i_BFu9s_BFs9ll_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9ll_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9ll_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9ll_BFs9ll, BFu9i_BFu9s_BFs9ll_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9ll_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9ll_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9ll_BFs9s, BFu9i_BFu9s_BFs9ll_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9ll_BFu9i, BFu9i_BFu9s_BFs9ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9ll_BFu9ll, BFu9i_BFu9s_BFs9ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9ll_BFu9s, BFu9i_BFu9s_BFs9ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9s, BFu9i_BFu9s_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9s_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9s_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9s_BFs9i, BFu9i_BFu9s_BFs9s_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9s_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9s_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9s_BFs9ll, BFu9i_BFu9s_BFs9s_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9s_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9s_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9s_BFs9s, BFu9i_BFu9s_BFs9s_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9s_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9s_BFu9i, BFu9i_BFu9s_BFs9s_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9s_BFu9ll, BFu9i_BFu9s_BFs9s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFs9s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFs9s_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9s_BFs9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFs9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFs9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFs9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFs9s_BFu9s, BFu9i_BFu9s_BFs9s_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9s_BFu15i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu15i");
    static STRUCT_IF_C BFu9i_BFu9s_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu15i");
    set_bf_and_test(lv, v3, 2, 2, 15, 1, "BFu9i_BFu9s_BFu15i");
    set_bf_and_test(lv, v3, 2, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu9s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu15i, BFu9i_BFu9s_BFu15i)
//============================================================================



static void Test_BFu9i_BFu9s_BFu15ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu15ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu15ll");
    set_bf_and_test(lv, v3, 2, 2, 15, 1, "BFu9i_BFu9s_BFu15ll");
    set_bf_and_test(lv, v3, 2, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu9s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu15ll, BFu9i_BFu9s_BFu15ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFu15s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu15s");
    static STRUCT_IF_C BFu9i_BFu9s_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu15s");
    set_bf_and_test(lv, v3, 2, 2, 15, 1, "BFu9i_BFu9s_BFu15s");
    set_bf_and_test(lv, v3, 2, 2, 15, hide_ull(1LL<<14), "BFu9i_BFu9s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu15s, BFu9i_BFu9s_BFu15s)
//============================================================================



static void Test_BFu9i_BFu9s_BFu16i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu16i");
    static STRUCT_IF_C BFu9i_BFu9s_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu16i");
    set_bf_and_test(lv, v3, 2, 2, 16, 1, "BFu9i_BFu9s_BFu16i");
    set_bf_and_test(lv, v3, 2, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu9s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu16i, BFu9i_BFu9s_BFu16i)
//============================================================================



static void Test_BFu9i_BFu9s_BFu16ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu16ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu16ll");
    set_bf_and_test(lv, v3, 2, 2, 16, 1, "BFu9i_BFu9s_BFu16ll");
    set_bf_and_test(lv, v3, 2, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu9s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu16ll, BFu9i_BFu9s_BFu16ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFu16s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu16s");
    static STRUCT_IF_C BFu9i_BFu9s_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu16s");
    set_bf_and_test(lv, v3, 2, 2, 16, 1, "BFu9i_BFu9s_BFu16s");
    set_bf_and_test(lv, v3, 2, 2, 16, hide_ull(1LL<<15), "BFu9i_BFu9s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu16s, BFu9i_BFu9s_BFu16s)
//============================================================================



static void Test_BFu9i_BFu9s_BFu17i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu17i");
    static STRUCT_IF_C BFu9i_BFu9s_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu17i");
    set_bf_and_test(lv, v3, 2, 2, 17, 1, "BFu9i_BFu9s_BFu17i");
    set_bf_and_test(lv, v3, 2, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu9s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu17i, BFu9i_BFu9s_BFu17i)
//============================================================================



static void Test_BFu9i_BFu9s_BFu17ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu17ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu17ll");
    set_bf_and_test(lv, v3, 2, 2, 17, 1, "BFu9i_BFu9s_BFu17ll");
    set_bf_and_test(lv, v3, 2, 2, 17, hide_ull(1LL<<16), "BFu9i_BFu9s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu17ll, BFu9i_BFu9s_BFu17ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFu1c()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu1c");
    static STRUCT_IF_C BFu9i_BFu9s_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu9s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu1c");
    set_bf_and_test(lv, v3, 2, 2, 1, 1, "BFu9i_BFu9s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu1c, BFu9i_BFu9s_BFu1c)
//============================================================================



static void Test_BFu9i_BFu9s_BFu1i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu1i");
    static STRUCT_IF_C BFu9i_BFu9s_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu9s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu1i");
    set_bf_and_test(lv, v3, 2, 2, 1, 1, "BFu9i_BFu9s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu1i, BFu9i_BFu9s_BFu1i)
//============================================================================



static void Test_BFu9i_BFu9s_BFu1ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu1ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu9s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu1ll");
    set_bf_and_test(lv, v3, 2, 2, 1, 1, "BFu9i_BFu9s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu1ll, BFu9i_BFu9s_BFu1ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFu1s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu1s");
    static STRUCT_IF_C BFu9i_BFu9s_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_BFu9s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu1s");
    set_bf_and_test(lv, v3, 2, 2, 1, 1, "BFu9i_BFu9s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu1s, BFu9i_BFu9s_BFu1s)
//============================================================================



static void Test_BFu9i_BFu9s_BFu31i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu31i");
    static STRUCT_IF_C BFu9i_BFu9s_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu31i");
    set_bf_and_test(lv, v3, 2, 2, 31, 1, "BFu9i_BFu9s_BFu31i");
    set_bf_and_test(lv, v3, 2, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu9s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu31i, BFu9i_BFu9s_BFu31i)
//============================================================================



static void Test_BFu9i_BFu9s_BFu31ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu31ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu31ll");
    set_bf_and_test(lv, v3, 2, 2, 31, 1, "BFu9i_BFu9s_BFu31ll");
    set_bf_and_test(lv, v3, 2, 2, 31, hide_ull(1LL<<30), "BFu9i_BFu9s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu31ll, BFu9i_BFu9s_BFu31ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFu32i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu32i");
    static STRUCT_IF_C BFu9i_BFu9s_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu32i");
    set_bf_and_test(lv, v3, 2, 2, 32, 1, "BFu9i_BFu9s_BFu32i");
    set_bf_and_test(lv, v3, 2, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu9s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu32i, BFu9i_BFu9s_BFu32i)
//============================================================================



static void Test_BFu9i_BFu9s_BFu32ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu32ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu32ll");
    set_bf_and_test(lv, v3, 2, 2, 32, 1, "BFu9i_BFu9s_BFu32ll");
    set_bf_and_test(lv, v3, 2, 2, 32, hide_ull(1LL<<31), "BFu9i_BFu9s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu32ll, BFu9i_BFu9s_BFu32ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFu33()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu33");
    static STRUCT_IF_C BFu9i_BFu9s_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu33");
    set_bf_and_test(lv, v3, 2, 2, 33, 1, "BFu9i_BFu9s_BFu33");
    set_bf_and_test(lv, v3, 2, 2, 33, hide_ull(1LL<<32), "BFu9i_BFu9s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu33, BFu9i_BFu9s_BFu33)
//============================================================================



static void Test_BFu9i_BFu9s_BFu7c()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu7c");
    static STRUCT_IF_C BFu9i_BFu9s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu7c");
    set_bf_and_test(lv, v3, 2, 2, 7, 1, "BFu9i_BFu9s_BFu7c");
    set_bf_and_test(lv, v3, 2, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu9s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu7c, BFu9i_BFu9s_BFu7c)
//============================================================================



static void Test_BFu9i_BFu9s_BFu7i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu7i");
    static STRUCT_IF_C BFu9i_BFu9s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu7i");
    set_bf_and_test(lv, v3, 2, 2, 7, 1, "BFu9i_BFu9s_BFu7i");
    set_bf_and_test(lv, v3, 2, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu9s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu7i, BFu9i_BFu9s_BFu7i)
//============================================================================



static void Test_BFu9i_BFu9s_BFu7ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu7ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu7ll");
    set_bf_and_test(lv, v3, 2, 2, 7, 1, "BFu9i_BFu9s_BFu7ll");
    set_bf_and_test(lv, v3, 2, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu9s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu7ll, BFu9i_BFu9s_BFu7ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFu7s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu7s");
    static STRUCT_IF_C BFu9i_BFu9s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu7s");
    set_bf_and_test(lv, v3, 2, 2, 7, 1, "BFu9i_BFu9s_BFu7s");
    set_bf_and_test(lv, v3, 2, 2, 7, hide_ull(1LL<<6), "BFu9i_BFu9s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu7s, BFu9i_BFu9s_BFu7s)
//============================================================================



static void Test_BFu9i_BFu9s_BFu8c()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu8c");
    static STRUCT_IF_C BFu9i_BFu9s_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu8c");
    set_bf_and_test(lv, v3, 2, 2, 8, 1, "BFu9i_BFu9s_BFu8c");
    set_bf_and_test(lv, v3, 2, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu9s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu8c, BFu9i_BFu9s_BFu8c)
//============================================================================



static void Test_BFu9i_BFu9s_BFu8i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu8i");
    static STRUCT_IF_C BFu9i_BFu9s_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu8i");
    set_bf_and_test(lv, v3, 2, 2, 8, 1, "BFu9i_BFu9s_BFu8i");
    set_bf_and_test(lv, v3, 2, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu9s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu8i, BFu9i_BFu9s_BFu8i)
//============================================================================



static void Test_BFu9i_BFu9s_BFu8ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu8ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 2, 8, 1, "BFu9i_BFu9s_BFu8ll");
    set_bf_and_test(lv, v3, 2, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu9s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu8ll, BFu9i_BFu9s_BFu8ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFu8s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu8s");
    static STRUCT_IF_C BFu9i_BFu9s_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu8s");
    set_bf_and_test(lv, v3, 2, 2, 8, 1, "BFu9i_BFu9s_BFu8s");
    set_bf_and_test(lv, v3, 2, 2, 8, hide_ull(1LL<<7), "BFu9i_BFu9s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu8s, BFu9i_BFu9s_BFu8s)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9i, BFu9i_BFu9s_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9i_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9i_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFu9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9i_BFs9i, BFu9i_BFu9s_BFu9i_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9i_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9i_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFu9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9i_BFs9ll, BFu9i_BFu9s_BFu9i_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9i_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9i_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFu9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9i_BFs9s, BFu9i_BFu9s_BFu9i_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9i_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9i_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9i_BFu9i, BFu9i_BFu9s_BFu9i_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9i_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9i_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9i_BFu9ll, BFu9i_BFu9s_BFu9i_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9i_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9i_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9i_BFu9s, BFu9i_BFu9s_BFu9i_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9ll, BFu9i_BFu9s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9ll_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9ll_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9ll_BFs9i, BFu9i_BFu9s_BFu9ll_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9ll_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9ll_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9ll_BFs9ll, BFu9i_BFu9s_BFu9ll_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9ll_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9ll_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9ll_BFs9s, BFu9i_BFu9s_BFu9ll_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9ll_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9ll_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9ll_BFu9i, BFu9i_BFu9s_BFu9ll_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9ll_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9ll_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9ll_BFu9ll, BFu9i_BFu9s_BFu9ll_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9ll_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9ll_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9ll_BFu9s, BFu9i_BFu9s_BFu9ll_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9s, BFu9i_BFu9s_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9s_BFs9i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9s_BFs9i");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFu9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9s_BFs9i, BFu9i_BFu9s_BFu9s_BFs9i)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9s_BFs9ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9s_BFs9ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFu9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9s_BFs9ll, BFu9i_BFu9s_BFu9s_BFs9ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9s_BFs9s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9s_BFs9s");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9i_BFu9s_BFu9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9s_BFs9s, BFu9i_BFu9s_BFu9s_BFs9s)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9s_BFu9i()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9s_BFu9i");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9s_BFu9i, BFu9i_BFu9s_BFu9s_BFu9i)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9s_BFu9ll()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9s_BFu9ll");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9s_BFu9ll, BFu9i_BFu9s_BFu9s_BFu9ll)
//============================================================================



static void Test_BFu9i_BFu9s_BFu9s_BFu9s()
{
  {
    init_simple_test("BFu9i_BFu9s_BFu9s_BFu9s");
    static STRUCT_IF_C BFu9i_BFu9s_BFu9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_BFu9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_BFu9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9i_BFu9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9i_BFu9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_BFu9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_BFu9s_BFu9s, BFu9i_BFu9s_BFu9s_BFu9s)
//============================================================================



static void Test_BFu9i_BFu9s_C()
{
  {
    init_simple_test("BFu9i_BFu9s_C");
    static STRUCT_IF_C BFu9i_BFu9s_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9s_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_C");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_C");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_C");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_C, BFu9i_BFu9s_C)
//============================================================================



static void Test_BFu9i_BFu9s_D()
{
  {
    init_simple_test("BFu9i_BFu9s_D");
    static STRUCT_IF_C BFu9i_BFu9s_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu9s_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_D");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_D");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_D");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_D, BFu9i_BFu9s_D)
//============================================================================



static void Test_BFu9i_BFu9s_F()
{
  {
    init_simple_test("BFu9i_BFu9s_F");
    static STRUCT_IF_C BFu9i_BFu9s_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9s_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_F");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_F");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_F");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_F, BFu9i_BFu9s_F)
//============================================================================



static void Test_BFu9i_BFu9s_I()
{
  {
    init_simple_test("BFu9i_BFu9s_I");
    static STRUCT_IF_C BFu9i_BFu9s_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9s_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_I");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_I");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_I");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_I, BFu9i_BFu9s_I)
//============================================================================



static void Test_BFu9i_BFu9s_Ip()
{
  {
    init_simple_test("BFu9i_BFu9s_Ip");
    static STRUCT_IF_C BFu9i_BFu9s_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu9s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_Ip");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_Ip");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_Ip");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_Ip, BFu9i_BFu9s_Ip)
//============================================================================



static void Test_BFu9i_BFu9s_L()
{
  {
    init_simple_test("BFu9i_BFu9s_L");
    static STRUCT_IF_C BFu9i_BFu9s_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu9s_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_L");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_L");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_L");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_L, BFu9i_BFu9s_L)
//============================================================================



static void Test_BFu9i_BFu9s_S()
{
  {
    init_simple_test("BFu9i_BFu9s_S");
    static STRUCT_IF_C BFu9i_BFu9s_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_S");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_S");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_S");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_S, BFu9i_BFu9s_S)
//============================================================================



static void Test_BFu9i_BFu9s_Uc()
{
  {
    init_simple_test("BFu9i_BFu9s_Uc");
    static STRUCT_IF_C BFu9i_BFu9s_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_BFu9s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_Uc");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_Uc");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_Uc");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_Uc, BFu9i_BFu9s_Uc)
//============================================================================



static void Test_BFu9i_BFu9s_Ui()
{
  {
    init_simple_test("BFu9i_BFu9s_Ui");
    static STRUCT_IF_C BFu9i_BFu9s_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_BFu9s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_Ui");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_Ui");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_Ui");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_Ui, BFu9i_BFu9s_Ui)
//============================================================================



static void Test_BFu9i_BFu9s_Ul()
{
  {
    init_simple_test("BFu9i_BFu9s_Ul");
    static STRUCT_IF_C BFu9i_BFu9s_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_BFu9s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_Ul");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_Ul");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_Ul");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_Ul, BFu9i_BFu9s_Ul)
//============================================================================



static void Test_BFu9i_BFu9s_Us()
{
  {
    init_simple_test("BFu9i_BFu9s_Us");
    static STRUCT_IF_C BFu9i_BFu9s_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_BFu9s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_Us");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_Us");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_Us");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_Us, BFu9i_BFu9s_Us)
//============================================================================



static void Test_BFu9i_BFu9s_Vp()
{
  {
    init_simple_test("BFu9i_BFu9s_Vp");
    static STRUCT_IF_C BFu9i_BFu9s_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_BFu9s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_BFu9s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_BFu9s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_Vp");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9i_BFu9s_Vp");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "BFu9i_BFu9s_Vp");
    check_field_offset(lv, v3, 3, "BFu9i_BFu9s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_BFu9s_Vp, BFu9i_BFu9s_Vp)
//============================================================================



static void Test_BFu9i_C()
{
  {
    init_simple_test("BFu9i_C");
    static STRUCT_IF_C BFu9i_C lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C");
    check_field_offset(lv, v2, 2, "BFu9i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C, BFu9i_C)
//============================================================================



static void Test_BFu9i_C_BFu15i()
{
  {
    init_simple_test("BFu9i_C_BFu15i");
    static STRUCT_IF_C BFu9i_C_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_C_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu15i");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu15i.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9i_C_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9i_C_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu15i, BFu9i_C_BFu15i)
//============================================================================



static void Test_BFu9i_C_BFu15ll()
{
  {
    init_simple_test("BFu9i_C_BFu15ll");
    static STRUCT_IF_C BFu9i_C_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_C_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu15ll");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu15ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9i_C_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9i_C_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu15ll, BFu9i_C_BFu15ll)
//============================================================================



static void Test_BFu9i_C_BFu15s()
{
  {
    init_simple_test("BFu9i_C_BFu15s");
    static STRUCT_IF_C BFu9i_C_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_C_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu15s");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu15s.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9i_C_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9i_C_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu15s, BFu9i_C_BFu15s)
//============================================================================



static void Test_BFu9i_C_BFu16i()
{
  {
    init_simple_test("BFu9i_C_BFu16i");
    static STRUCT_IF_C BFu9i_C_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_C_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu16i");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu16i.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9i_C_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9i_C_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu16i, BFu9i_C_BFu16i)
//============================================================================



static void Test_BFu9i_C_BFu16ll()
{
  {
    init_simple_test("BFu9i_C_BFu16ll");
    static STRUCT_IF_C BFu9i_C_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_C_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu16ll");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu16ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9i_C_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9i_C_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu16ll, BFu9i_C_BFu16ll)
//============================================================================



static void Test_BFu9i_C_BFu16s()
{
  {
    init_simple_test("BFu9i_C_BFu16s");
    static STRUCT_IF_C BFu9i_C_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_C_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu16s");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu16s.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9i_C_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9i_C_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu16s, BFu9i_C_BFu16s)
//============================================================================



static void Test_BFu9i_C_BFu17i()
{
  {
    init_simple_test("BFu9i_C_BFu17i");
    static STRUCT_IF_C BFu9i_C_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_C_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu17i");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu17i.v2");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu9i_C_BFu17i");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu9i_C_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu17i, BFu9i_C_BFu17i)
//============================================================================



static void Test_BFu9i_C_BFu17ll()
{
  {
    init_simple_test("BFu9i_C_BFu17ll");
    static STRUCT_IF_C BFu9i_C_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_C_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu17ll");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu17ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu9i_C_BFu17ll");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu9i_C_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu17ll, BFu9i_C_BFu17ll)
//============================================================================



static void Test_BFu9i_C_BFu1c()
{
  {
    init_simple_test("BFu9i_C_BFu1c");
    static STRUCT_IF_C BFu9i_C_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_C_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu1c");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu1c.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_C_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu1c, BFu9i_C_BFu1c)
//============================================================================



static void Test_BFu9i_C_BFu1i()
{
  {
    init_simple_test("BFu9i_C_BFu1i");
    static STRUCT_IF_C BFu9i_C_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_C_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu1i");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu1i.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_C_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu1i, BFu9i_C_BFu1i)
//============================================================================



static void Test_BFu9i_C_BFu1ll()
{
  {
    init_simple_test("BFu9i_C_BFu1ll");
    static STRUCT_IF_C BFu9i_C_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_C_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu1ll");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu1ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_C_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu1ll, BFu9i_C_BFu1ll)
//============================================================================



static void Test_BFu9i_C_BFu1s()
{
  {
    init_simple_test("BFu9i_C_BFu1s");
    static STRUCT_IF_C BFu9i_C_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_C_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu1s");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu1s.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_C_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu1s, BFu9i_C_BFu1s)
//============================================================================



static void Test_BFu9i_C_BFu31i()
{
  {
    init_simple_test("BFu9i_C_BFu31i");
    static STRUCT_IF_C BFu9i_C_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_C_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu31i");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu31i.v2");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu9i_C_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu9i_C_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu31i, BFu9i_C_BFu31i)
//============================================================================



static void Test_BFu9i_C_BFu31ll()
{
  {
    init_simple_test("BFu9i_C_BFu31ll");
    static STRUCT_IF_C BFu9i_C_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_C_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu31ll");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu31ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu9i_C_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu9i_C_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu31ll, BFu9i_C_BFu31ll)
//============================================================================



static void Test_BFu9i_C_BFu32i()
{
  {
    init_simple_test("BFu9i_C_BFu32i");
    static STRUCT_IF_C BFu9i_C_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_C_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu32i");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu32i.v2");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu9i_C_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu9i_C_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu32i, BFu9i_C_BFu32i)
//============================================================================



static void Test_BFu9i_C_BFu32ll()
{
  {
    init_simple_test("BFu9i_C_BFu32ll");
    static STRUCT_IF_C BFu9i_C_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_C_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu32ll");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu32ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu9i_C_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu9i_C_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu32ll, BFu9i_C_BFu32ll)
//============================================================================



static void Test_BFu9i_C_BFu33()
{
  {
    init_simple_test("BFu9i_C_BFu33");
    static STRUCT_IF_C BFu9i_C_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_C_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu33");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu33.v2");
    set_bf_and_test(lv, v3, 3, 0, 33, 1, "BFu9i_C_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, hide_ull(1LL<<32), "BFu9i_C_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu33, BFu9i_C_BFu33)
//============================================================================



static void Test_BFu9i_C_BFu7c()
{
  {
    init_simple_test("BFu9i_C_BFu7c");
    static STRUCT_IF_C BFu9i_C_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_C_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu7c");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu7c.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_C_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_C_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu7c, BFu9i_C_BFu7c)
//============================================================================



static void Test_BFu9i_C_BFu7i()
{
  {
    init_simple_test("BFu9i_C_BFu7i");
    static STRUCT_IF_C BFu9i_C_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_C_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu7i");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu7i.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_C_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_C_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu7i, BFu9i_C_BFu7i)
//============================================================================



static void Test_BFu9i_C_BFu7ll()
{
  {
    init_simple_test("BFu9i_C_BFu7ll");
    static STRUCT_IF_C BFu9i_C_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_C_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu7ll");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu7ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_C_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_C_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu7ll, BFu9i_C_BFu7ll)
//============================================================================



static void Test_BFu9i_C_BFu7s()
{
  {
    init_simple_test("BFu9i_C_BFu7s");
    static STRUCT_IF_C BFu9i_C_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_C_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu7s");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu7s.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_C_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_C_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu7s, BFu9i_C_BFu7s)
//============================================================================



static void Test_BFu9i_C_BFu8c()
{
  {
    init_simple_test("BFu9i_C_BFu8c");
    static STRUCT_IF_C BFu9i_C_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_C_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu8c");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu8c.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_C_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_C_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu8c, BFu9i_C_BFu8c)
//============================================================================



static void Test_BFu9i_C_BFu8i()
{
  {
    init_simple_test("BFu9i_C_BFu8i");
    static STRUCT_IF_C BFu9i_C_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_C_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu8i");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu8i.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_C_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_C_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu8i, BFu9i_C_BFu8i)
//============================================================================



static void Test_BFu9i_C_BFu8ll()
{
  {
    init_simple_test("BFu9i_C_BFu8ll");
    static STRUCT_IF_C BFu9i_C_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_C_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu8ll");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu8ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_C_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_C_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu8ll, BFu9i_C_BFu8ll)
//============================================================================



static void Test_BFu9i_C_BFu8s()
{
  {
    init_simple_test("BFu9i_C_BFu8s");
    static STRUCT_IF_C BFu9i_C_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_C_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu8s");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu8s.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_C_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_C_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu8s, BFu9i_C_BFu8s)
//============================================================================



static void Test_BFu9i_C_BFu9i()
{
  {
    init_simple_test("BFu9i_C_BFu9i");
    static STRUCT_IF_C BFu9i_C_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_C_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu9i");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu9i.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9i_C_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu9i, BFu9i_C_BFu9i)
//============================================================================



static void Test_BFu9i_C_BFu9ll()
{
  {
    init_simple_test("BFu9i_C_BFu9ll");
    static STRUCT_IF_C BFu9i_C_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_C_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu9ll");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu9ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9i_C_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu9ll, BFu9i_C_BFu9ll)
//============================================================================



static void Test_BFu9i_C_BFu9s()
{
  {
    init_simple_test("BFu9i_C_BFu9s");
    static STRUCT_IF_C BFu9i_C_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_C_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu9s");
    check_field_offset(lv, v2, 2, "BFu9i_C_BFu9s.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9i_C_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9i_C_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_BFu9s, BFu9i_C_BFu9s)
//============================================================================



static void Test_BFu9i_C_C()
{
  {
    init_simple_test("BFu9i_C_C");
    static STRUCT_IF_C BFu9i_C_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_C_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_C");
    check_field_offset(lv, v2, 2, "BFu9i_C_C.v2");
    check_field_offset(lv, v3, 3, "BFu9i_C_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_C, BFu9i_C_C)
//============================================================================



static void Test_BFu9i_C_D()
{
  {
    init_simple_test("BFu9i_C_D");
    static STRUCT_IF_C BFu9i_C_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_C_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_D");
    check_field_offset(lv, v2, 2, "BFu9i_C_D.v2");
    check_field_offset(lv, v3, 3, "BFu9i_C_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_D, BFu9i_C_D)
//============================================================================



static void Test_BFu9i_C_F()
{
  {
    init_simple_test("BFu9i_C_F");
    static STRUCT_IF_C BFu9i_C_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_C_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_F");
    check_field_offset(lv, v2, 2, "BFu9i_C_F.v2");
    check_field_offset(lv, v3, 3, "BFu9i_C_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_F, BFu9i_C_F)
//============================================================================



static void Test_BFu9i_C_I()
{
  {
    init_simple_test("BFu9i_C_I");
    static STRUCT_IF_C BFu9i_C_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_C_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_I");
    check_field_offset(lv, v2, 2, "BFu9i_C_I.v2");
    check_field_offset(lv, v3, 3, "BFu9i_C_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_I, BFu9i_C_I)
//============================================================================



static void Test_BFu9i_C_Ip()
{
  {
    init_simple_test("BFu9i_C_Ip");
    static STRUCT_IF_C BFu9i_C_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_C_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_Ip");
    check_field_offset(lv, v2, 2, "BFu9i_C_Ip.v2");
    check_field_offset(lv, v3, 3, "BFu9i_C_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_Ip, BFu9i_C_Ip)
//============================================================================



static void Test_BFu9i_C_L()
{
  {
    init_simple_test("BFu9i_C_L");
    static STRUCT_IF_C BFu9i_C_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_C_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_L");
    check_field_offset(lv, v2, 2, "BFu9i_C_L.v2");
    check_field_offset(lv, v3, 3, "BFu9i_C_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_L, BFu9i_C_L)
//============================================================================



static void Test_BFu9i_C_S()
{
  {
    init_simple_test("BFu9i_C_S");
    static STRUCT_IF_C BFu9i_C_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_C_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_S");
    check_field_offset(lv, v2, 2, "BFu9i_C_S.v2");
    check_field_offset(lv, v3, 3, "BFu9i_C_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_S, BFu9i_C_S)
//============================================================================



static void Test_BFu9i_C_Uc()
{
  {
    init_simple_test("BFu9i_C_Uc");
    static STRUCT_IF_C BFu9i_C_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_C_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_Uc");
    check_field_offset(lv, v2, 2, "BFu9i_C_Uc.v2");
    check_field_offset(lv, v3, 3, "BFu9i_C_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_Uc, BFu9i_C_Uc)
//============================================================================



static void Test_BFu9i_C_Ui()
{
  {
    init_simple_test("BFu9i_C_Ui");
    static STRUCT_IF_C BFu9i_C_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_C_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_Ui");
    check_field_offset(lv, v2, 2, "BFu9i_C_Ui.v2");
    check_field_offset(lv, v3, 3, "BFu9i_C_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_Ui, BFu9i_C_Ui)
//============================================================================



static void Test_BFu9i_C_Ul()
{
  {
    init_simple_test("BFu9i_C_Ul");
    static STRUCT_IF_C BFu9i_C_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_C_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_Ul");
    check_field_offset(lv, v2, 2, "BFu9i_C_Ul.v2");
    check_field_offset(lv, v3, 3, "BFu9i_C_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_Ul, BFu9i_C_Ul)
//============================================================================



static void Test_BFu9i_C_Us()
{
  {
    init_simple_test("BFu9i_C_Us");
    static STRUCT_IF_C BFu9i_C_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_C_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_Us");
    check_field_offset(lv, v2, 2, "BFu9i_C_Us.v2");
    check_field_offset(lv, v3, 3, "BFu9i_C_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_Us, BFu9i_C_Us)
//============================================================================



static void Test_BFu9i_C_Vp()
{
  {
    init_simple_test("BFu9i_C_Vp");
    static STRUCT_IF_C BFu9i_C_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_C_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_C_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_C_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_C_Vp");
    check_field_offset(lv, v2, 2, "BFu9i_C_Vp.v2");
    check_field_offset(lv, v3, 3, "BFu9i_C_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_C_Vp, BFu9i_C_Vp)
//============================================================================



static void Test_BFu9i_D()
{
  {
    init_simple_test("BFu9i_D");
    static STRUCT_IF_C BFu9i_D lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D");
    check_field_offset(lv, v2, 2, "BFu9i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D, BFu9i_D)
//============================================================================



static void Test_BFu9i_D_BFu15i()
{
  {
    init_simple_test("BFu9i_D_BFu15i");
    static STRUCT_IF_C BFu9i_D_BFu15i lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_D_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu15i");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu15i.v2");
    set_bf_and_test(lv, v3, 10, 0, 15, 1, "BFu9i_D_BFu15i");
    set_bf_and_test(lv, v3, 10, 0, 15, hide_ull(1LL<<14), "BFu9i_D_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu15i, BFu9i_D_BFu15i)
//============================================================================



static void Test_BFu9i_D_BFu15ll()
{
  {
    init_simple_test("BFu9i_D_BFu15ll");
    static STRUCT_IF_C BFu9i_D_BFu15ll lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_D_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu15ll");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu15ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 15, 1, "BFu9i_D_BFu15ll");
    set_bf_and_test(lv, v3, 10, 0, 15, hide_ull(1LL<<14), "BFu9i_D_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu15ll, BFu9i_D_BFu15ll)
//============================================================================



static void Test_BFu9i_D_BFu15s()
{
  {
    init_simple_test("BFu9i_D_BFu15s");
    static STRUCT_IF_C BFu9i_D_BFu15s lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_D_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu15s");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu15s.v2");
    set_bf_and_test(lv, v3, 10, 0, 15, 1, "BFu9i_D_BFu15s");
    set_bf_and_test(lv, v3, 10, 0, 15, hide_ull(1LL<<14), "BFu9i_D_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu15s, BFu9i_D_BFu15s)
//============================================================================



static void Test_BFu9i_D_BFu16i()
{
  {
    init_simple_test("BFu9i_D_BFu16i");
    static STRUCT_IF_C BFu9i_D_BFu16i lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_D_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu16i");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu16i.v2");
    set_bf_and_test(lv, v3, 10, 0, 16, 1, "BFu9i_D_BFu16i");
    set_bf_and_test(lv, v3, 10, 0, 16, hide_ull(1LL<<15), "BFu9i_D_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu16i, BFu9i_D_BFu16i)
//============================================================================



static void Test_BFu9i_D_BFu16ll()
{
  {
    init_simple_test("BFu9i_D_BFu16ll");
    static STRUCT_IF_C BFu9i_D_BFu16ll lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_D_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu16ll");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu16ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 16, 1, "BFu9i_D_BFu16ll");
    set_bf_and_test(lv, v3, 10, 0, 16, hide_ull(1LL<<15), "BFu9i_D_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu16ll, BFu9i_D_BFu16ll)
//============================================================================



static void Test_BFu9i_D_BFu16s()
{
  {
    init_simple_test("BFu9i_D_BFu16s");
    static STRUCT_IF_C BFu9i_D_BFu16s lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_D_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu16s");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu16s.v2");
    set_bf_and_test(lv, v3, 10, 0, 16, 1, "BFu9i_D_BFu16s");
    set_bf_and_test(lv, v3, 10, 0, 16, hide_ull(1LL<<15), "BFu9i_D_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu16s, BFu9i_D_BFu16s)
//============================================================================



static void Test_BFu9i_D_BFu17i()
{
  {
    init_simple_test("BFu9i_D_BFu17i");
    static STRUCT_IF_C BFu9i_D_BFu17i lv;
    check2(sizeof(lv), 13, "sizeof(BFu9i_D_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu17i");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu17i.v2");
    set_bf_and_test(lv, v3, 10, 0, 17, 1, "BFu9i_D_BFu17i");
    set_bf_and_test(lv, v3, 10, 0, 17, hide_ull(1LL<<16), "BFu9i_D_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu17i, BFu9i_D_BFu17i)
//============================================================================



static void Test_BFu9i_D_BFu17ll()
{
  {
    init_simple_test("BFu9i_D_BFu17ll");
    static STRUCT_IF_C BFu9i_D_BFu17ll lv;
    check2(sizeof(lv), 13, "sizeof(BFu9i_D_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu17ll");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu17ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 17, 1, "BFu9i_D_BFu17ll");
    set_bf_and_test(lv, v3, 10, 0, 17, hide_ull(1LL<<16), "BFu9i_D_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu17ll, BFu9i_D_BFu17ll)
//============================================================================



static void Test_BFu9i_D_BFu1c()
{
  {
    init_simple_test("BFu9i_D_BFu1c");
    static STRUCT_IF_C BFu9i_D_BFu1c lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_D_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu1c");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu1c.v2");
    set_bf_and_test(lv, v3, 10, 0, 1, 1, "BFu9i_D_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu1c, BFu9i_D_BFu1c)
//============================================================================



static void Test_BFu9i_D_BFu1i()
{
  {
    init_simple_test("BFu9i_D_BFu1i");
    static STRUCT_IF_C BFu9i_D_BFu1i lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_D_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu1i");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu1i.v2");
    set_bf_and_test(lv, v3, 10, 0, 1, 1, "BFu9i_D_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu1i, BFu9i_D_BFu1i)
//============================================================================



static void Test_BFu9i_D_BFu1ll()
{
  {
    init_simple_test("BFu9i_D_BFu1ll");
    static STRUCT_IF_C BFu9i_D_BFu1ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_D_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu1ll");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu1ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 1, 1, "BFu9i_D_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu1ll, BFu9i_D_BFu1ll)
//============================================================================



static void Test_BFu9i_D_BFu1s()
{
  {
    init_simple_test("BFu9i_D_BFu1s");
    static STRUCT_IF_C BFu9i_D_BFu1s lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_D_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu1s");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu1s.v2");
    set_bf_and_test(lv, v3, 10, 0, 1, 1, "BFu9i_D_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu1s, BFu9i_D_BFu1s)
//============================================================================



static void Test_BFu9i_D_BFu31i()
{
  {
    init_simple_test("BFu9i_D_BFu31i");
    static STRUCT_IF_C BFu9i_D_BFu31i lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_D_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu31i");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu31i.v2");
    set_bf_and_test(lv, v3, 10, 0, 31, 1, "BFu9i_D_BFu31i");
    set_bf_and_test(lv, v3, 10, 0, 31, hide_ull(1LL<<30), "BFu9i_D_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu31i, BFu9i_D_BFu31i)
//============================================================================



static void Test_BFu9i_D_BFu31ll()
{
  {
    init_simple_test("BFu9i_D_BFu31ll");
    static STRUCT_IF_C BFu9i_D_BFu31ll lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_D_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu31ll");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu31ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 31, 1, "BFu9i_D_BFu31ll");
    set_bf_and_test(lv, v3, 10, 0, 31, hide_ull(1LL<<30), "BFu9i_D_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu31ll, BFu9i_D_BFu31ll)
//============================================================================



static void Test_BFu9i_D_BFu32i()
{
  {
    init_simple_test("BFu9i_D_BFu32i");
    static STRUCT_IF_C BFu9i_D_BFu32i lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_D_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu32i");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu32i.v2");
    set_bf_and_test(lv, v3, 10, 0, 32, 1, "BFu9i_D_BFu32i");
    set_bf_and_test(lv, v3, 10, 0, 32, hide_ull(1LL<<31), "BFu9i_D_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu32i, BFu9i_D_BFu32i)
//============================================================================



static void Test_BFu9i_D_BFu32ll()
{
  {
    init_simple_test("BFu9i_D_BFu32ll");
    static STRUCT_IF_C BFu9i_D_BFu32ll lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_D_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu32ll");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu32ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 32, 1, "BFu9i_D_BFu32ll");
    set_bf_and_test(lv, v3, 10, 0, 32, hide_ull(1LL<<31), "BFu9i_D_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu32ll, BFu9i_D_BFu32ll)
//============================================================================



static void Test_BFu9i_D_BFu33()
{
  {
    init_simple_test("BFu9i_D_BFu33");
    static STRUCT_IF_C BFu9i_D_BFu33 lv;
    check2(sizeof(lv), 15, "sizeof(BFu9i_D_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu33");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu33.v2");
    set_bf_and_test(lv, v3, 10, 0, 33, 1, "BFu9i_D_BFu33");
    set_bf_and_test(lv, v3, 10, 0, 33, hide_ull(1LL<<32), "BFu9i_D_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu33, BFu9i_D_BFu33)
//============================================================================



static void Test_BFu9i_D_BFu7c()
{
  {
    init_simple_test("BFu9i_D_BFu7c");
    static STRUCT_IF_C BFu9i_D_BFu7c lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_D_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu7c");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu7c.v2");
    set_bf_and_test(lv, v3, 10, 0, 7, 1, "BFu9i_D_BFu7c");
    set_bf_and_test(lv, v3, 10, 0, 7, hide_ull(1LL<<6), "BFu9i_D_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu7c, BFu9i_D_BFu7c)
//============================================================================



static void Test_BFu9i_D_BFu7i()
{
  {
    init_simple_test("BFu9i_D_BFu7i");
    static STRUCT_IF_C BFu9i_D_BFu7i lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_D_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu7i");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu7i.v2");
    set_bf_and_test(lv, v3, 10, 0, 7, 1, "BFu9i_D_BFu7i");
    set_bf_and_test(lv, v3, 10, 0, 7, hide_ull(1LL<<6), "BFu9i_D_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu7i, BFu9i_D_BFu7i)
//============================================================================



static void Test_BFu9i_D_BFu7ll()
{
  {
    init_simple_test("BFu9i_D_BFu7ll");
    static STRUCT_IF_C BFu9i_D_BFu7ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_D_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu7ll");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu7ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 7, 1, "BFu9i_D_BFu7ll");
    set_bf_and_test(lv, v3, 10, 0, 7, hide_ull(1LL<<6), "BFu9i_D_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu7ll, BFu9i_D_BFu7ll)
//============================================================================



static void Test_BFu9i_D_BFu7s()
{
  {
    init_simple_test("BFu9i_D_BFu7s");
    static STRUCT_IF_C BFu9i_D_BFu7s lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_D_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu7s");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu7s.v2");
    set_bf_and_test(lv, v3, 10, 0, 7, 1, "BFu9i_D_BFu7s");
    set_bf_and_test(lv, v3, 10, 0, 7, hide_ull(1LL<<6), "BFu9i_D_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu7s, BFu9i_D_BFu7s)
//============================================================================



static void Test_BFu9i_D_BFu8c()
{
  {
    init_simple_test("BFu9i_D_BFu8c");
    static STRUCT_IF_C BFu9i_D_BFu8c lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_D_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu8c");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu8c.v2");
    set_bf_and_test(lv, v3, 10, 0, 8, 1, "BFu9i_D_BFu8c");
    set_bf_and_test(lv, v3, 10, 0, 8, hide_ull(1LL<<7), "BFu9i_D_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu8c, BFu9i_D_BFu8c)
//============================================================================



static void Test_BFu9i_D_BFu8i()
{
  {
    init_simple_test("BFu9i_D_BFu8i");
    static STRUCT_IF_C BFu9i_D_BFu8i lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_D_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu8i");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu8i.v2");
    set_bf_and_test(lv, v3, 10, 0, 8, 1, "BFu9i_D_BFu8i");
    set_bf_and_test(lv, v3, 10, 0, 8, hide_ull(1LL<<7), "BFu9i_D_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu8i, BFu9i_D_BFu8i)
//============================================================================



static void Test_BFu9i_D_BFu8ll()
{
  {
    init_simple_test("BFu9i_D_BFu8ll");
    static STRUCT_IF_C BFu9i_D_BFu8ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_D_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu8ll");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu8ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 8, 1, "BFu9i_D_BFu8ll");
    set_bf_and_test(lv, v3, 10, 0, 8, hide_ull(1LL<<7), "BFu9i_D_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu8ll, BFu9i_D_BFu8ll)
//============================================================================



static void Test_BFu9i_D_BFu8s()
{
  {
    init_simple_test("BFu9i_D_BFu8s");
    static STRUCT_IF_C BFu9i_D_BFu8s lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_D_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu8s");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu8s.v2");
    set_bf_and_test(lv, v3, 10, 0, 8, 1, "BFu9i_D_BFu8s");
    set_bf_and_test(lv, v3, 10, 0, 8, hide_ull(1LL<<7), "BFu9i_D_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu8s, BFu9i_D_BFu8s)
//============================================================================



static void Test_BFu9i_D_BFu9i()
{
  {
    init_simple_test("BFu9i_D_BFu9i");
    static STRUCT_IF_C BFu9i_D_BFu9i lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_D_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu9i");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu9i.v2");
    set_bf_and_test(lv, v3, 10, 0, 9, 1, "BFu9i_D_BFu9i");
    set_bf_and_test(lv, v3, 10, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu9i, BFu9i_D_BFu9i)
//============================================================================



static void Test_BFu9i_D_BFu9ll()
{
  {
    init_simple_test("BFu9i_D_BFu9ll");
    static STRUCT_IF_C BFu9i_D_BFu9ll lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_D_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu9ll");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu9ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 9, 1, "BFu9i_D_BFu9ll");
    set_bf_and_test(lv, v3, 10, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu9ll, BFu9i_D_BFu9ll)
//============================================================================



static void Test_BFu9i_D_BFu9s()
{
  {
    init_simple_test("BFu9i_D_BFu9s");
    static STRUCT_IF_C BFu9i_D_BFu9s lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_D_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu9s");
    check_field_offset(lv, v2, 2, "BFu9i_D_BFu9s.v2");
    set_bf_and_test(lv, v3, 10, 0, 9, 1, "BFu9i_D_BFu9s");
    set_bf_and_test(lv, v3, 10, 0, 9, hide_ull(1LL<<8), "BFu9i_D_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_BFu9s, BFu9i_D_BFu9s)
//============================================================================



static void Test_BFu9i_D_C()
{
  {
    init_simple_test("BFu9i_D_C");
    static STRUCT_IF_C BFu9i_D_C lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_D_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_C");
    check_field_offset(lv, v2, 2, "BFu9i_D_C.v2");
    check_field_offset(lv, v3, 10, "BFu9i_D_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_C, BFu9i_D_C)
//============================================================================



static void Test_BFu9i_D_D()
{
  {
    init_simple_test("BFu9i_D_D");
    static STRUCT_IF_C BFu9i_D_D lv;
    check2(sizeof(lv), 18, "sizeof(BFu9i_D_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_D");
    check_field_offset(lv, v2, 2, "BFu9i_D_D.v2");
    check_field_offset(lv, v3, 10, "BFu9i_D_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_D, BFu9i_D_D)
//============================================================================



static void Test_BFu9i_D_F()
{
  {
    init_simple_test("BFu9i_D_F");
    static STRUCT_IF_C BFu9i_D_F lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_D_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_F");
    check_field_offset(lv, v2, 2, "BFu9i_D_F.v2");
    check_field_offset(lv, v3, 10, "BFu9i_D_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_F, BFu9i_D_F)
//============================================================================



static void Test_BFu9i_D_I()
{
  {
    init_simple_test("BFu9i_D_I");
    static STRUCT_IF_C BFu9i_D_I lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_D_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_I");
    check_field_offset(lv, v2, 2, "BFu9i_D_I.v2");
    check_field_offset(lv, v3, 10, "BFu9i_D_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_I, BFu9i_D_I)
//============================================================================



static void Test_BFu9i_D_Ip()
{
  {
    init_simple_test("BFu9i_D_Ip");
    static STRUCT_IF_C BFu9i_D_Ip lv;
    check2(sizeof(lv), ABISELECT(18,14), "sizeof(BFu9i_D_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_Ip");
    check_field_offset(lv, v2, 2, "BFu9i_D_Ip.v2");
    check_field_offset(lv, v3, 10, "BFu9i_D_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_Ip, BFu9i_D_Ip)
//============================================================================



static void Test_BFu9i_D_L()
{
  {
    init_simple_test("BFu9i_D_L");
    static STRUCT_IF_C BFu9i_D_L lv;
    check2(sizeof(lv), 18, "sizeof(BFu9i_D_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_L");
    check_field_offset(lv, v2, 2, "BFu9i_D_L.v2");
    check_field_offset(lv, v3, 10, "BFu9i_D_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_L, BFu9i_D_L)
//============================================================================



static void Test_BFu9i_D_S()
{
  {
    init_simple_test("BFu9i_D_S");
    static STRUCT_IF_C BFu9i_D_S lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_D_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_S");
    check_field_offset(lv, v2, 2, "BFu9i_D_S.v2");
    check_field_offset(lv, v3, 10, "BFu9i_D_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_S, BFu9i_D_S)
//============================================================================



static void Test_BFu9i_D_Uc()
{
  {
    init_simple_test("BFu9i_D_Uc");
    static STRUCT_IF_C BFu9i_D_Uc lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_D_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_Uc");
    check_field_offset(lv, v2, 2, "BFu9i_D_Uc.v2");
    check_field_offset(lv, v3, 10, "BFu9i_D_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_Uc, BFu9i_D_Uc)
//============================================================================



static void Test_BFu9i_D_Ui()
{
  {
    init_simple_test("BFu9i_D_Ui");
    static STRUCT_IF_C BFu9i_D_Ui lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_D_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_Ui");
    check_field_offset(lv, v2, 2, "BFu9i_D_Ui.v2");
    check_field_offset(lv, v3, 10, "BFu9i_D_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_Ui, BFu9i_D_Ui)
//============================================================================



static void Test_BFu9i_D_Ul()
{
  {
    init_simple_test("BFu9i_D_Ul");
    static STRUCT_IF_C BFu9i_D_Ul lv;
    check2(sizeof(lv), 18, "sizeof(BFu9i_D_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_Ul");
    check_field_offset(lv, v2, 2, "BFu9i_D_Ul.v2");
    check_field_offset(lv, v3, 10, "BFu9i_D_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_Ul, BFu9i_D_Ul)
//============================================================================



static void Test_BFu9i_D_Us()
{
  {
    init_simple_test("BFu9i_D_Us");
    static STRUCT_IF_C BFu9i_D_Us lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_D_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_Us");
    check_field_offset(lv, v2, 2, "BFu9i_D_Us.v2");
    check_field_offset(lv, v3, 10, "BFu9i_D_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_Us, BFu9i_D_Us)
//============================================================================



static void Test_BFu9i_D_Vp()
{
  {
    init_simple_test("BFu9i_D_Vp");
    static STRUCT_IF_C BFu9i_D_Vp lv;
    check2(sizeof(lv), ABISELECT(18,14), "sizeof(BFu9i_D_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_D_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_D_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_D_Vp");
    check_field_offset(lv, v2, 2, "BFu9i_D_Vp.v2");
    check_field_offset(lv, v3, 10, "BFu9i_D_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_D_Vp, BFu9i_D_Vp)
//============================================================================



static void Test_BFu9i_F()
{
  {
    init_simple_test("BFu9i_F");
    static STRUCT_IF_C BFu9i_F lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F");
    check_field_offset(lv, v2, 2, "BFu9i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F, BFu9i_F)
//============================================================================



static void Test_BFu9i_F_BFu15i()
{
  {
    init_simple_test("BFu9i_F_BFu15i");
    static STRUCT_IF_C BFu9i_F_BFu15i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_F_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu15i");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu15i.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "BFu9i_F_BFu15i");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "BFu9i_F_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu15i, BFu9i_F_BFu15i)
//============================================================================



static void Test_BFu9i_F_BFu15ll()
{
  {
    init_simple_test("BFu9i_F_BFu15ll");
    static STRUCT_IF_C BFu9i_F_BFu15ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_F_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu15ll");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu15ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "BFu9i_F_BFu15ll");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "BFu9i_F_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu15ll, BFu9i_F_BFu15ll)
//============================================================================



static void Test_BFu9i_F_BFu15s()
{
  {
    init_simple_test("BFu9i_F_BFu15s");
    static STRUCT_IF_C BFu9i_F_BFu15s lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_F_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu15s");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu15s.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "BFu9i_F_BFu15s");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "BFu9i_F_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu15s, BFu9i_F_BFu15s)
//============================================================================



static void Test_BFu9i_F_BFu16i()
{
  {
    init_simple_test("BFu9i_F_BFu16i");
    static STRUCT_IF_C BFu9i_F_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_F_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu16i");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu16i.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "BFu9i_F_BFu16i");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "BFu9i_F_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu16i, BFu9i_F_BFu16i)
//============================================================================



static void Test_BFu9i_F_BFu16ll()
{
  {
    init_simple_test("BFu9i_F_BFu16ll");
    static STRUCT_IF_C BFu9i_F_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_F_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu16ll");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu16ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "BFu9i_F_BFu16ll");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "BFu9i_F_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu16ll, BFu9i_F_BFu16ll)
//============================================================================



static void Test_BFu9i_F_BFu16s()
{
  {
    init_simple_test("BFu9i_F_BFu16s");
    static STRUCT_IF_C BFu9i_F_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_F_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu16s");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu16s.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "BFu9i_F_BFu16s");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "BFu9i_F_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu16s, BFu9i_F_BFu16s)
//============================================================================



static void Test_BFu9i_F_BFu17i()
{
  {
    init_simple_test("BFu9i_F_BFu17i");
    static STRUCT_IF_C BFu9i_F_BFu17i lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_F_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu17i");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu17i.v2");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "BFu9i_F_BFu17i");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "BFu9i_F_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu17i, BFu9i_F_BFu17i)
//============================================================================



static void Test_BFu9i_F_BFu17ll()
{
  {
    init_simple_test("BFu9i_F_BFu17ll");
    static STRUCT_IF_C BFu9i_F_BFu17ll lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_F_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu17ll");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu17ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "BFu9i_F_BFu17ll");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "BFu9i_F_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu17ll, BFu9i_F_BFu17ll)
//============================================================================



static void Test_BFu9i_F_BFu1c()
{
  {
    init_simple_test("BFu9i_F_BFu1c");
    static STRUCT_IF_C BFu9i_F_BFu1c lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_F_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu1c");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu1c.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "BFu9i_F_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu1c, BFu9i_F_BFu1c)
//============================================================================



static void Test_BFu9i_F_BFu1i()
{
  {
    init_simple_test("BFu9i_F_BFu1i");
    static STRUCT_IF_C BFu9i_F_BFu1i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_F_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu1i");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu1i.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "BFu9i_F_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu1i, BFu9i_F_BFu1i)
//============================================================================



static void Test_BFu9i_F_BFu1ll()
{
  {
    init_simple_test("BFu9i_F_BFu1ll");
    static STRUCT_IF_C BFu9i_F_BFu1ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_F_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu1ll");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu1ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "BFu9i_F_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu1ll, BFu9i_F_BFu1ll)
//============================================================================



static void Test_BFu9i_F_BFu1s()
{
  {
    init_simple_test("BFu9i_F_BFu1s");
    static STRUCT_IF_C BFu9i_F_BFu1s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_F_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu1s");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu1s.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "BFu9i_F_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu1s, BFu9i_F_BFu1s)
//============================================================================



static void Test_BFu9i_F_BFu31i()
{
  {
    init_simple_test("BFu9i_F_BFu31i");
    static STRUCT_IF_C BFu9i_F_BFu31i lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_F_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu31i");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu31i.v2");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "BFu9i_F_BFu31i");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "BFu9i_F_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu31i, BFu9i_F_BFu31i)
//============================================================================



static void Test_BFu9i_F_BFu31ll()
{
  {
    init_simple_test("BFu9i_F_BFu31ll");
    static STRUCT_IF_C BFu9i_F_BFu31ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_F_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu31ll");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu31ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "BFu9i_F_BFu31ll");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "BFu9i_F_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu31ll, BFu9i_F_BFu31ll)
//============================================================================



static void Test_BFu9i_F_BFu32i()
{
  {
    init_simple_test("BFu9i_F_BFu32i");
    static STRUCT_IF_C BFu9i_F_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_F_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu32i");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu32i.v2");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "BFu9i_F_BFu32i");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "BFu9i_F_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu32i, BFu9i_F_BFu32i)
//============================================================================



static void Test_BFu9i_F_BFu32ll()
{
  {
    init_simple_test("BFu9i_F_BFu32ll");
    static STRUCT_IF_C BFu9i_F_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_F_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu32ll");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu32ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "BFu9i_F_BFu32ll");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "BFu9i_F_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu32ll, BFu9i_F_BFu32ll)
//============================================================================



static void Test_BFu9i_F_BFu33()
{
  {
    init_simple_test("BFu9i_F_BFu33");
    static STRUCT_IF_C BFu9i_F_BFu33 lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_F_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu33");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu33.v2");
    set_bf_and_test(lv, v3, 6, 0, 33, 1, "BFu9i_F_BFu33");
    set_bf_and_test(lv, v3, 6, 0, 33, hide_ull(1LL<<32), "BFu9i_F_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu33, BFu9i_F_BFu33)
//============================================================================



static void Test_BFu9i_F_BFu7c()
{
  {
    init_simple_test("BFu9i_F_BFu7c");
    static STRUCT_IF_C BFu9i_F_BFu7c lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_F_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu7c");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu7c.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "BFu9i_F_BFu7c");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "BFu9i_F_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu7c, BFu9i_F_BFu7c)
//============================================================================



static void Test_BFu9i_F_BFu7i()
{
  {
    init_simple_test("BFu9i_F_BFu7i");
    static STRUCT_IF_C BFu9i_F_BFu7i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_F_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu7i");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu7i.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "BFu9i_F_BFu7i");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "BFu9i_F_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu7i, BFu9i_F_BFu7i)
//============================================================================



static void Test_BFu9i_F_BFu7ll()
{
  {
    init_simple_test("BFu9i_F_BFu7ll");
    static STRUCT_IF_C BFu9i_F_BFu7ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_F_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu7ll");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu7ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "BFu9i_F_BFu7ll");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "BFu9i_F_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu7ll, BFu9i_F_BFu7ll)
//============================================================================



static void Test_BFu9i_F_BFu7s()
{
  {
    init_simple_test("BFu9i_F_BFu7s");
    static STRUCT_IF_C BFu9i_F_BFu7s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_F_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu7s");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu7s.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "BFu9i_F_BFu7s");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "BFu9i_F_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu7s, BFu9i_F_BFu7s)
//============================================================================



static void Test_BFu9i_F_BFu8c()
{
  {
    init_simple_test("BFu9i_F_BFu8c");
    static STRUCT_IF_C BFu9i_F_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_F_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu8c");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu8c.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "BFu9i_F_BFu8c");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "BFu9i_F_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu8c, BFu9i_F_BFu8c)
//============================================================================



static void Test_BFu9i_F_BFu8i()
{
  {
    init_simple_test("BFu9i_F_BFu8i");
    static STRUCT_IF_C BFu9i_F_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_F_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu8i");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu8i.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "BFu9i_F_BFu8i");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "BFu9i_F_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu8i, BFu9i_F_BFu8i)
//============================================================================



static void Test_BFu9i_F_BFu8ll()
{
  {
    init_simple_test("BFu9i_F_BFu8ll");
    static STRUCT_IF_C BFu9i_F_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_F_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu8ll");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu8ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "BFu9i_F_BFu8ll");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "BFu9i_F_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu8ll, BFu9i_F_BFu8ll)
//============================================================================



static void Test_BFu9i_F_BFu8s()
{
  {
    init_simple_test("BFu9i_F_BFu8s");
    static STRUCT_IF_C BFu9i_F_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_F_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu8s");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu8s.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "BFu9i_F_BFu8s");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "BFu9i_F_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu8s, BFu9i_F_BFu8s)
//============================================================================



static void Test_BFu9i_F_BFu9i()
{
  {
    init_simple_test("BFu9i_F_BFu9i");
    static STRUCT_IF_C BFu9i_F_BFu9i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_F_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu9i");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu9i.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "BFu9i_F_BFu9i");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu9i, BFu9i_F_BFu9i)
//============================================================================



static void Test_BFu9i_F_BFu9ll()
{
  {
    init_simple_test("BFu9i_F_BFu9ll");
    static STRUCT_IF_C BFu9i_F_BFu9ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_F_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu9ll");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu9ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "BFu9i_F_BFu9ll");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu9ll, BFu9i_F_BFu9ll)
//============================================================================



static void Test_BFu9i_F_BFu9s()
{
  {
    init_simple_test("BFu9i_F_BFu9s");
    static STRUCT_IF_C BFu9i_F_BFu9s lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_F_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu9s");
    check_field_offset(lv, v2, 2, "BFu9i_F_BFu9s.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "BFu9i_F_BFu9s");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "BFu9i_F_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_BFu9s, BFu9i_F_BFu9s)
//============================================================================



static void Test_BFu9i_F_C()
{
  {
    init_simple_test("BFu9i_F_C");
    static STRUCT_IF_C BFu9i_F_C lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_F_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_C");
    check_field_offset(lv, v2, 2, "BFu9i_F_C.v2");
    check_field_offset(lv, v3, 6, "BFu9i_F_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_C, BFu9i_F_C)
//============================================================================



static void Test_BFu9i_F_D()
{
  {
    init_simple_test("BFu9i_F_D");
    static STRUCT_IF_C BFu9i_F_D lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_F_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_D");
    check_field_offset(lv, v2, 2, "BFu9i_F_D.v2");
    check_field_offset(lv, v3, 6, "BFu9i_F_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_D, BFu9i_F_D)
//============================================================================



static void Test_BFu9i_F_F()
{
  {
    init_simple_test("BFu9i_F_F");
    static STRUCT_IF_C BFu9i_F_F lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_F_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_F");
    check_field_offset(lv, v2, 2, "BFu9i_F_F.v2");
    check_field_offset(lv, v3, 6, "BFu9i_F_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_F, BFu9i_F_F)
//============================================================================



static void Test_BFu9i_F_I()
{
  {
    init_simple_test("BFu9i_F_I");
    static STRUCT_IF_C BFu9i_F_I lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_F_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_I");
    check_field_offset(lv, v2, 2, "BFu9i_F_I.v2");
    check_field_offset(lv, v3, 6, "BFu9i_F_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_I, BFu9i_F_I)
//============================================================================



static void Test_BFu9i_F_Ip()
{
  {
    init_simple_test("BFu9i_F_Ip");
    static STRUCT_IF_C BFu9i_F_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_F_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_Ip");
    check_field_offset(lv, v2, 2, "BFu9i_F_Ip.v2");
    check_field_offset(lv, v3, 6, "BFu9i_F_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_Ip, BFu9i_F_Ip)
//============================================================================



static void Test_BFu9i_F_L()
{
  {
    init_simple_test("BFu9i_F_L");
    static STRUCT_IF_C BFu9i_F_L lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_F_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_L");
    check_field_offset(lv, v2, 2, "BFu9i_F_L.v2");
    check_field_offset(lv, v3, 6, "BFu9i_F_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_L, BFu9i_F_L)
//============================================================================



static void Test_BFu9i_F_S()
{
  {
    init_simple_test("BFu9i_F_S");
    static STRUCT_IF_C BFu9i_F_S lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_F_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_S");
    check_field_offset(lv, v2, 2, "BFu9i_F_S.v2");
    check_field_offset(lv, v3, 6, "BFu9i_F_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_S, BFu9i_F_S)
//============================================================================



static void Test_BFu9i_F_Uc()
{
  {
    init_simple_test("BFu9i_F_Uc");
    static STRUCT_IF_C BFu9i_F_Uc lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_F_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_Uc");
    check_field_offset(lv, v2, 2, "BFu9i_F_Uc.v2");
    check_field_offset(lv, v3, 6, "BFu9i_F_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_Uc, BFu9i_F_Uc)
//============================================================================



static void Test_BFu9i_F_Ui()
{
  {
    init_simple_test("BFu9i_F_Ui");
    static STRUCT_IF_C BFu9i_F_Ui lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_F_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_Ui");
    check_field_offset(lv, v2, 2, "BFu9i_F_Ui.v2");
    check_field_offset(lv, v3, 6, "BFu9i_F_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_Ui, BFu9i_F_Ui)
//============================================================================



static void Test_BFu9i_F_Ul()
{
  {
    init_simple_test("BFu9i_F_Ul");
    static STRUCT_IF_C BFu9i_F_Ul lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_F_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_Ul");
    check_field_offset(lv, v2, 2, "BFu9i_F_Ul.v2");
    check_field_offset(lv, v3, 6, "BFu9i_F_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_Ul, BFu9i_F_Ul)
//============================================================================



static void Test_BFu9i_F_Us()
{
  {
    init_simple_test("BFu9i_F_Us");
    static STRUCT_IF_C BFu9i_F_Us lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_F_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_Us");
    check_field_offset(lv, v2, 2, "BFu9i_F_Us.v2");
    check_field_offset(lv, v3, 6, "BFu9i_F_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_Us, BFu9i_F_Us)
//============================================================================



static void Test_BFu9i_F_Vp()
{
  {
    init_simple_test("BFu9i_F_Vp");
    static STRUCT_IF_C BFu9i_F_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_F_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_F_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_F_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_F_Vp");
    check_field_offset(lv, v2, 2, "BFu9i_F_Vp.v2");
    check_field_offset(lv, v3, 6, "BFu9i_F_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_F_Vp, BFu9i_F_Vp)
//============================================================================



static void Test_BFu9i_I()
{
  {
    init_simple_test("BFu9i_I");
    static STRUCT_IF_C BFu9i_I lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I");
    check_field_offset(lv, v2, 2, "BFu9i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I, BFu9i_I)
//============================================================================



static void Test_BFu9i_I_BFu15i()
{
  {
    init_simple_test("BFu9i_I_BFu15i");
    static STRUCT_IF_C BFu9i_I_BFu15i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_I_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu15i");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu15i.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "BFu9i_I_BFu15i");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "BFu9i_I_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu15i, BFu9i_I_BFu15i)
//============================================================================



static void Test_BFu9i_I_BFu15ll()
{
  {
    init_simple_test("BFu9i_I_BFu15ll");
    static STRUCT_IF_C BFu9i_I_BFu15ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_I_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu15ll");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu15ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "BFu9i_I_BFu15ll");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "BFu9i_I_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu15ll, BFu9i_I_BFu15ll)
//============================================================================



static void Test_BFu9i_I_BFu15s()
{
  {
    init_simple_test("BFu9i_I_BFu15s");
    static STRUCT_IF_C BFu9i_I_BFu15s lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_I_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu15s");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu15s.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "BFu9i_I_BFu15s");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "BFu9i_I_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu15s, BFu9i_I_BFu15s)
//============================================================================



static void Test_BFu9i_I_BFu16i()
{
  {
    init_simple_test("BFu9i_I_BFu16i");
    static STRUCT_IF_C BFu9i_I_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_I_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu16i");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu16i.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "BFu9i_I_BFu16i");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "BFu9i_I_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu16i, BFu9i_I_BFu16i)
//============================================================================



static void Test_BFu9i_I_BFu16ll()
{
  {
    init_simple_test("BFu9i_I_BFu16ll");
    static STRUCT_IF_C BFu9i_I_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_I_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu16ll");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu16ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "BFu9i_I_BFu16ll");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "BFu9i_I_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu16ll, BFu9i_I_BFu16ll)
//============================================================================



static void Test_BFu9i_I_BFu16s()
{
  {
    init_simple_test("BFu9i_I_BFu16s");
    static STRUCT_IF_C BFu9i_I_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_I_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu16s");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu16s.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "BFu9i_I_BFu16s");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "BFu9i_I_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu16s, BFu9i_I_BFu16s)
//============================================================================



static void Test_BFu9i_I_BFu17i()
{
  {
    init_simple_test("BFu9i_I_BFu17i");
    static STRUCT_IF_C BFu9i_I_BFu17i lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_I_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu17i");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu17i.v2");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "BFu9i_I_BFu17i");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "BFu9i_I_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu17i, BFu9i_I_BFu17i)
//============================================================================



static void Test_BFu9i_I_BFu17ll()
{
  {
    init_simple_test("BFu9i_I_BFu17ll");
    static STRUCT_IF_C BFu9i_I_BFu17ll lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_I_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu17ll");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu17ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "BFu9i_I_BFu17ll");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "BFu9i_I_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu17ll, BFu9i_I_BFu17ll)
//============================================================================



static void Test_BFu9i_I_BFu1c()
{
  {
    init_simple_test("BFu9i_I_BFu1c");
    static STRUCT_IF_C BFu9i_I_BFu1c lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_I_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu1c");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu1c.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "BFu9i_I_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu1c, BFu9i_I_BFu1c)
//============================================================================



static void Test_BFu9i_I_BFu1i()
{
  {
    init_simple_test("BFu9i_I_BFu1i");
    static STRUCT_IF_C BFu9i_I_BFu1i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_I_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu1i");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu1i.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "BFu9i_I_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu1i, BFu9i_I_BFu1i)
//============================================================================



static void Test_BFu9i_I_BFu1ll()
{
  {
    init_simple_test("BFu9i_I_BFu1ll");
    static STRUCT_IF_C BFu9i_I_BFu1ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_I_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu1ll");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu1ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "BFu9i_I_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu1ll, BFu9i_I_BFu1ll)
//============================================================================



static void Test_BFu9i_I_BFu1s()
{
  {
    init_simple_test("BFu9i_I_BFu1s");
    static STRUCT_IF_C BFu9i_I_BFu1s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_I_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu1s");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu1s.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "BFu9i_I_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu1s, BFu9i_I_BFu1s)
//============================================================================



static void Test_BFu9i_I_BFu31i()
{
  {
    init_simple_test("BFu9i_I_BFu31i");
    static STRUCT_IF_C BFu9i_I_BFu31i lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_I_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu31i");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu31i.v2");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "BFu9i_I_BFu31i");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "BFu9i_I_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu31i, BFu9i_I_BFu31i)
//============================================================================



static void Test_BFu9i_I_BFu31ll()
{
  {
    init_simple_test("BFu9i_I_BFu31ll");
    static STRUCT_IF_C BFu9i_I_BFu31ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_I_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu31ll");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu31ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "BFu9i_I_BFu31ll");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "BFu9i_I_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu31ll, BFu9i_I_BFu31ll)
//============================================================================



static void Test_BFu9i_I_BFu32i()
{
  {
    init_simple_test("BFu9i_I_BFu32i");
    static STRUCT_IF_C BFu9i_I_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_I_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu32i");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu32i.v2");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "BFu9i_I_BFu32i");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "BFu9i_I_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu32i, BFu9i_I_BFu32i)
//============================================================================



static void Test_BFu9i_I_BFu32ll()
{
  {
    init_simple_test("BFu9i_I_BFu32ll");
    static STRUCT_IF_C BFu9i_I_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_I_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu32ll");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu32ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "BFu9i_I_BFu32ll");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "BFu9i_I_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu32ll, BFu9i_I_BFu32ll)
//============================================================================



static void Test_BFu9i_I_BFu33()
{
  {
    init_simple_test("BFu9i_I_BFu33");
    static STRUCT_IF_C BFu9i_I_BFu33 lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_I_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu33");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu33.v2");
    set_bf_and_test(lv, v3, 6, 0, 33, 1, "BFu9i_I_BFu33");
    set_bf_and_test(lv, v3, 6, 0, 33, hide_ull(1LL<<32), "BFu9i_I_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu33, BFu9i_I_BFu33)
//============================================================================



static void Test_BFu9i_I_BFu7c()
{
  {
    init_simple_test("BFu9i_I_BFu7c");
    static STRUCT_IF_C BFu9i_I_BFu7c lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_I_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu7c");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu7c.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "BFu9i_I_BFu7c");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "BFu9i_I_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu7c, BFu9i_I_BFu7c)
//============================================================================



static void Test_BFu9i_I_BFu7i()
{
  {
    init_simple_test("BFu9i_I_BFu7i");
    static STRUCT_IF_C BFu9i_I_BFu7i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_I_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu7i");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu7i.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "BFu9i_I_BFu7i");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "BFu9i_I_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu7i, BFu9i_I_BFu7i)
//============================================================================



static void Test_BFu9i_I_BFu7ll()
{
  {
    init_simple_test("BFu9i_I_BFu7ll");
    static STRUCT_IF_C BFu9i_I_BFu7ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_I_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu7ll");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu7ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "BFu9i_I_BFu7ll");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "BFu9i_I_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu7ll, BFu9i_I_BFu7ll)
//============================================================================



static void Test_BFu9i_I_BFu7s()
{
  {
    init_simple_test("BFu9i_I_BFu7s");
    static STRUCT_IF_C BFu9i_I_BFu7s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_I_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu7s");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu7s.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "BFu9i_I_BFu7s");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "BFu9i_I_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu7s, BFu9i_I_BFu7s)
//============================================================================



static void Test_BFu9i_I_BFu8c()
{
  {
    init_simple_test("BFu9i_I_BFu8c");
    static STRUCT_IF_C BFu9i_I_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_I_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu8c");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu8c.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "BFu9i_I_BFu8c");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "BFu9i_I_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu8c, BFu9i_I_BFu8c)
//============================================================================



static void Test_BFu9i_I_BFu8i()
{
  {
    init_simple_test("BFu9i_I_BFu8i");
    static STRUCT_IF_C BFu9i_I_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_I_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu8i");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu8i.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "BFu9i_I_BFu8i");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "BFu9i_I_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu8i, BFu9i_I_BFu8i)
//============================================================================



static void Test_BFu9i_I_BFu8ll()
{
  {
    init_simple_test("BFu9i_I_BFu8ll");
    static STRUCT_IF_C BFu9i_I_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_I_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu8ll");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu8ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "BFu9i_I_BFu8ll");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "BFu9i_I_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu8ll, BFu9i_I_BFu8ll)
//============================================================================



static void Test_BFu9i_I_BFu8s()
{
  {
    init_simple_test("BFu9i_I_BFu8s");
    static STRUCT_IF_C BFu9i_I_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_I_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu8s");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu8s.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "BFu9i_I_BFu8s");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "BFu9i_I_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu8s, BFu9i_I_BFu8s)
//============================================================================



static void Test_BFu9i_I_BFu9i()
{
  {
    init_simple_test("BFu9i_I_BFu9i");
    static STRUCT_IF_C BFu9i_I_BFu9i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_I_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu9i");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu9i.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "BFu9i_I_BFu9i");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu9i, BFu9i_I_BFu9i)
//============================================================================



static void Test_BFu9i_I_BFu9ll()
{
  {
    init_simple_test("BFu9i_I_BFu9ll");
    static STRUCT_IF_C BFu9i_I_BFu9ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_I_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu9ll");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu9ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "BFu9i_I_BFu9ll");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu9ll, BFu9i_I_BFu9ll)
//============================================================================



static void Test_BFu9i_I_BFu9s()
{
  {
    init_simple_test("BFu9i_I_BFu9s");
    static STRUCT_IF_C BFu9i_I_BFu9s lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_I_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu9s");
    check_field_offset(lv, v2, 2, "BFu9i_I_BFu9s.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "BFu9i_I_BFu9s");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "BFu9i_I_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_BFu9s, BFu9i_I_BFu9s)
//============================================================================



static void Test_BFu9i_I_C()
{
  {
    init_simple_test("BFu9i_I_C");
    static STRUCT_IF_C BFu9i_I_C lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_I_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_C");
    check_field_offset(lv, v2, 2, "BFu9i_I_C.v2");
    check_field_offset(lv, v3, 6, "BFu9i_I_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_C, BFu9i_I_C)
//============================================================================



static void Test_BFu9i_I_D()
{
  {
    init_simple_test("BFu9i_I_D");
    static STRUCT_IF_C BFu9i_I_D lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_I_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_D");
    check_field_offset(lv, v2, 2, "BFu9i_I_D.v2");
    check_field_offset(lv, v3, 6, "BFu9i_I_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_D, BFu9i_I_D)
//============================================================================



static void Test_BFu9i_I_F()
{
  {
    init_simple_test("BFu9i_I_F");
    static STRUCT_IF_C BFu9i_I_F lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_I_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_F");
    check_field_offset(lv, v2, 2, "BFu9i_I_F.v2");
    check_field_offset(lv, v3, 6, "BFu9i_I_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_F, BFu9i_I_F)
//============================================================================



static void Test_BFu9i_I_I()
{
  {
    init_simple_test("BFu9i_I_I");
    static STRUCT_IF_C BFu9i_I_I lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_I_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_I");
    check_field_offset(lv, v2, 2, "BFu9i_I_I.v2");
    check_field_offset(lv, v3, 6, "BFu9i_I_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_I, BFu9i_I_I)
//============================================================================



static void Test_BFu9i_I_Ip()
{
  {
    init_simple_test("BFu9i_I_Ip");
    static STRUCT_IF_C BFu9i_I_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_I_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_Ip");
    check_field_offset(lv, v2, 2, "BFu9i_I_Ip.v2");
    check_field_offset(lv, v3, 6, "BFu9i_I_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_Ip, BFu9i_I_Ip)
//============================================================================



static void Test_BFu9i_I_L()
{
  {
    init_simple_test("BFu9i_I_L");
    static STRUCT_IF_C BFu9i_I_L lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_I_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_L");
    check_field_offset(lv, v2, 2, "BFu9i_I_L.v2");
    check_field_offset(lv, v3, 6, "BFu9i_I_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_L, BFu9i_I_L)
//============================================================================



static void Test_BFu9i_I_S()
{
  {
    init_simple_test("BFu9i_I_S");
    static STRUCT_IF_C BFu9i_I_S lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_I_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_S");
    check_field_offset(lv, v2, 2, "BFu9i_I_S.v2");
    check_field_offset(lv, v3, 6, "BFu9i_I_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_S, BFu9i_I_S)
//============================================================================



static void Test_BFu9i_I_Uc()
{
  {
    init_simple_test("BFu9i_I_Uc");
    static STRUCT_IF_C BFu9i_I_Uc lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_I_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_Uc");
    check_field_offset(lv, v2, 2, "BFu9i_I_Uc.v2");
    check_field_offset(lv, v3, 6, "BFu9i_I_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_Uc, BFu9i_I_Uc)
//============================================================================



static void Test_BFu9i_I_Ui()
{
  {
    init_simple_test("BFu9i_I_Ui");
    static STRUCT_IF_C BFu9i_I_Ui lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_I_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_Ui");
    check_field_offset(lv, v2, 2, "BFu9i_I_Ui.v2");
    check_field_offset(lv, v3, 6, "BFu9i_I_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_Ui, BFu9i_I_Ui)
//============================================================================



static void Test_BFu9i_I_Ul()
{
  {
    init_simple_test("BFu9i_I_Ul");
    static STRUCT_IF_C BFu9i_I_Ul lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_I_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_Ul");
    check_field_offset(lv, v2, 2, "BFu9i_I_Ul.v2");
    check_field_offset(lv, v3, 6, "BFu9i_I_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_Ul, BFu9i_I_Ul)
//============================================================================



static void Test_BFu9i_I_Us()
{
  {
    init_simple_test("BFu9i_I_Us");
    static STRUCT_IF_C BFu9i_I_Us lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_I_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_Us");
    check_field_offset(lv, v2, 2, "BFu9i_I_Us.v2");
    check_field_offset(lv, v3, 6, "BFu9i_I_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_Us, BFu9i_I_Us)
//============================================================================



static void Test_BFu9i_I_Vp()
{
  {
    init_simple_test("BFu9i_I_Vp");
    static STRUCT_IF_C BFu9i_I_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_I_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_I_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_I_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_I_Vp");
    check_field_offset(lv, v2, 2, "BFu9i_I_Vp.v2");
    check_field_offset(lv, v3, 6, "BFu9i_I_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_I_Vp, BFu9i_I_Vp)
//============================================================================



static void Test_BFu9i_Ip()
{
  {
    init_simple_test("BFu9i_Ip");
    static STRUCT_IF_C BFu9i_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip");
    check_field_offset(lv, v2, 2, "BFu9i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip, BFu9i_Ip)
//============================================================================



static void Test_BFu9i_Ip_BFu15i()
{
  {
    init_simple_test("BFu9i_Ip_BFu15i");
    static STRUCT_IF_C BFu9i_Ip_BFu15i lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Ip_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu15i");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu15i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 15, 1, "BFu9i_Ip_BFu15i");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 15, hide_ull(1LL<<14), "BFu9i_Ip_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu15i, BFu9i_Ip_BFu15i)
//============================================================================



static void Test_BFu9i_Ip_BFu15ll()
{
  {
    init_simple_test("BFu9i_Ip_BFu15ll");
    static STRUCT_IF_C BFu9i_Ip_BFu15ll lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Ip_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu15ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu15ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 15, 1, "BFu9i_Ip_BFu15ll");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 15, hide_ull(1LL<<14), "BFu9i_Ip_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu15ll, BFu9i_Ip_BFu15ll)
//============================================================================



static void Test_BFu9i_Ip_BFu15s()
{
  {
    init_simple_test("BFu9i_Ip_BFu15s");
    static STRUCT_IF_C BFu9i_Ip_BFu15s lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Ip_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu15s");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu15s.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 15, 1, "BFu9i_Ip_BFu15s");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 15, hide_ull(1LL<<14), "BFu9i_Ip_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu15s, BFu9i_Ip_BFu15s)
//============================================================================



static void Test_BFu9i_Ip_BFu16i()
{
  {
    init_simple_test("BFu9i_Ip_BFu16i");
    static STRUCT_IF_C BFu9i_Ip_BFu16i lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Ip_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu16i");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu16i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 16, 1, "BFu9i_Ip_BFu16i");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 16, hide_ull(1LL<<15), "BFu9i_Ip_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu16i, BFu9i_Ip_BFu16i)
//============================================================================



static void Test_BFu9i_Ip_BFu16ll()
{
  {
    init_simple_test("BFu9i_Ip_BFu16ll");
    static STRUCT_IF_C BFu9i_Ip_BFu16ll lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Ip_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu16ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu16ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 16, 1, "BFu9i_Ip_BFu16ll");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 16, hide_ull(1LL<<15), "BFu9i_Ip_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu16ll, BFu9i_Ip_BFu16ll)
//============================================================================



static void Test_BFu9i_Ip_BFu16s()
{
  {
    init_simple_test("BFu9i_Ip_BFu16s");
    static STRUCT_IF_C BFu9i_Ip_BFu16s lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Ip_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu16s");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu16s.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 16, 1, "BFu9i_Ip_BFu16s");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 16, hide_ull(1LL<<15), "BFu9i_Ip_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu16s, BFu9i_Ip_BFu16s)
//============================================================================



static void Test_BFu9i_Ip_BFu17i()
{
  {
    init_simple_test("BFu9i_Ip_BFu17i");
    static STRUCT_IF_C BFu9i_Ip_BFu17i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu9i_Ip_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu17i");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu17i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 17, 1, "BFu9i_Ip_BFu17i");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 17, hide_ull(1LL<<16), "BFu9i_Ip_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu17i, BFu9i_Ip_BFu17i)
//============================================================================



static void Test_BFu9i_Ip_BFu17ll()
{
  {
    init_simple_test("BFu9i_Ip_BFu17ll");
    static STRUCT_IF_C BFu9i_Ip_BFu17ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu9i_Ip_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu17ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu17ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 17, 1, "BFu9i_Ip_BFu17ll");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 17, hide_ull(1LL<<16), "BFu9i_Ip_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu17ll, BFu9i_Ip_BFu17ll)
//============================================================================



static void Test_BFu9i_Ip_BFu1c()
{
  {
    init_simple_test("BFu9i_Ip_BFu1c");
    static STRUCT_IF_C BFu9i_Ip_BFu1c lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Ip_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu1c");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu1c.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 1, 1, "BFu9i_Ip_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu1c, BFu9i_Ip_BFu1c)
//============================================================================



static void Test_BFu9i_Ip_BFu1i()
{
  {
    init_simple_test("BFu9i_Ip_BFu1i");
    static STRUCT_IF_C BFu9i_Ip_BFu1i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Ip_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu1i");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu1i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 1, 1, "BFu9i_Ip_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu1i, BFu9i_Ip_BFu1i)
//============================================================================



static void Test_BFu9i_Ip_BFu1ll()
{
  {
    init_simple_test("BFu9i_Ip_BFu1ll");
    static STRUCT_IF_C BFu9i_Ip_BFu1ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Ip_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu1ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu1ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 1, 1, "BFu9i_Ip_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu1ll, BFu9i_Ip_BFu1ll)
//============================================================================



static void Test_BFu9i_Ip_BFu1s()
{
  {
    init_simple_test("BFu9i_Ip_BFu1s");
    static STRUCT_IF_C BFu9i_Ip_BFu1s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Ip_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu1s");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu1s.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 1, 1, "BFu9i_Ip_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu1s, BFu9i_Ip_BFu1s)
//============================================================================



static void Test_BFu9i_Ip_BFu31i()
{
  {
    init_simple_test("BFu9i_Ip_BFu31i");
    static STRUCT_IF_C BFu9i_Ip_BFu31i lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_Ip_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu31i");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu31i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 31, 1, "BFu9i_Ip_BFu31i");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 31, hide_ull(1LL<<30), "BFu9i_Ip_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu31i, BFu9i_Ip_BFu31i)
//============================================================================



static void Test_BFu9i_Ip_BFu31ll()
{
  {
    init_simple_test("BFu9i_Ip_BFu31ll");
    static STRUCT_IF_C BFu9i_Ip_BFu31ll lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_Ip_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu31ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu31ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 31, 1, "BFu9i_Ip_BFu31ll");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 31, hide_ull(1LL<<30), "BFu9i_Ip_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu31ll, BFu9i_Ip_BFu31ll)
//============================================================================



static void Test_BFu9i_Ip_BFu32i()
{
  {
    init_simple_test("BFu9i_Ip_BFu32i");
    static STRUCT_IF_C BFu9i_Ip_BFu32i lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_Ip_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu32i");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu32i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 32, 1, "BFu9i_Ip_BFu32i");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 32, hide_ull(1LL<<31), "BFu9i_Ip_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu32i, BFu9i_Ip_BFu32i)
//============================================================================



static void Test_BFu9i_Ip_BFu32ll()
{
  {
    init_simple_test("BFu9i_Ip_BFu32ll");
    static STRUCT_IF_C BFu9i_Ip_BFu32ll lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_Ip_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu32ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu32ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 32, 1, "BFu9i_Ip_BFu32ll");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 32, hide_ull(1LL<<31), "BFu9i_Ip_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu32ll, BFu9i_Ip_BFu32ll)
//============================================================================



static void Test_BFu9i_Ip_BFu33()
{
  {
    init_simple_test("BFu9i_Ip_BFu33");
    static STRUCT_IF_C BFu9i_Ip_BFu33 lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(BFu9i_Ip_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu33");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu33.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 33, 1, "BFu9i_Ip_BFu33");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 33, hide_ull(1LL<<32), "BFu9i_Ip_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu33, BFu9i_Ip_BFu33)
//============================================================================



static void Test_BFu9i_Ip_BFu7c()
{
  {
    init_simple_test("BFu9i_Ip_BFu7c");
    static STRUCT_IF_C BFu9i_Ip_BFu7c lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Ip_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu7c");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu7c.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 7, 1, "BFu9i_Ip_BFu7c");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 7, hide_ull(1LL<<6), "BFu9i_Ip_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu7c, BFu9i_Ip_BFu7c)
//============================================================================



static void Test_BFu9i_Ip_BFu7i()
{
  {
    init_simple_test("BFu9i_Ip_BFu7i");
    static STRUCT_IF_C BFu9i_Ip_BFu7i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Ip_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu7i");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu7i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 7, 1, "BFu9i_Ip_BFu7i");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 7, hide_ull(1LL<<6), "BFu9i_Ip_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu7i, BFu9i_Ip_BFu7i)
//============================================================================



static void Test_BFu9i_Ip_BFu7ll()
{
  {
    init_simple_test("BFu9i_Ip_BFu7ll");
    static STRUCT_IF_C BFu9i_Ip_BFu7ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Ip_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu7ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu7ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 7, 1, "BFu9i_Ip_BFu7ll");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 7, hide_ull(1LL<<6), "BFu9i_Ip_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu7ll, BFu9i_Ip_BFu7ll)
//============================================================================



static void Test_BFu9i_Ip_BFu7s()
{
  {
    init_simple_test("BFu9i_Ip_BFu7s");
    static STRUCT_IF_C BFu9i_Ip_BFu7s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Ip_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu7s");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu7s.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 7, 1, "BFu9i_Ip_BFu7s");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 7, hide_ull(1LL<<6), "BFu9i_Ip_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu7s, BFu9i_Ip_BFu7s)
//============================================================================



static void Test_BFu9i_Ip_BFu8c()
{
  {
    init_simple_test("BFu9i_Ip_BFu8c");
    static STRUCT_IF_C BFu9i_Ip_BFu8c lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Ip_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu8c");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu8c.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 8, 1, "BFu9i_Ip_BFu8c");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 8, hide_ull(1LL<<7), "BFu9i_Ip_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu8c, BFu9i_Ip_BFu8c)
//============================================================================



static void Test_BFu9i_Ip_BFu8i()
{
  {
    init_simple_test("BFu9i_Ip_BFu8i");
    static STRUCT_IF_C BFu9i_Ip_BFu8i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Ip_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu8i");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu8i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 8, 1, "BFu9i_Ip_BFu8i");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 8, hide_ull(1LL<<7), "BFu9i_Ip_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu8i, BFu9i_Ip_BFu8i)
//============================================================================



static void Test_BFu9i_Ip_BFu8ll()
{
  {
    init_simple_test("BFu9i_Ip_BFu8ll");
    static STRUCT_IF_C BFu9i_Ip_BFu8ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Ip_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu8ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu8ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 8, 1, "BFu9i_Ip_BFu8ll");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 8, hide_ull(1LL<<7), "BFu9i_Ip_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu8ll, BFu9i_Ip_BFu8ll)
//============================================================================



static void Test_BFu9i_Ip_BFu8s()
{
  {
    init_simple_test("BFu9i_Ip_BFu8s");
    static STRUCT_IF_C BFu9i_Ip_BFu8s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Ip_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu8s");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu8s.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 8, 1, "BFu9i_Ip_BFu8s");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 8, hide_ull(1LL<<7), "BFu9i_Ip_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu8s, BFu9i_Ip_BFu8s)
//============================================================================



static void Test_BFu9i_Ip_BFu9i()
{
  {
    init_simple_test("BFu9i_Ip_BFu9i");
    static STRUCT_IF_C BFu9i_Ip_BFu9i lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Ip_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu9i");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu9i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 9, 1, "BFu9i_Ip_BFu9i");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu9i, BFu9i_Ip_BFu9i)
//============================================================================



static void Test_BFu9i_Ip_BFu9ll()
{
  {
    init_simple_test("BFu9i_Ip_BFu9ll");
    static STRUCT_IF_C BFu9i_Ip_BFu9ll lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Ip_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu9ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu9ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 9, 1, "BFu9i_Ip_BFu9ll");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu9ll, BFu9i_Ip_BFu9ll)
//============================================================================



static void Test_BFu9i_Ip_BFu9s()
{
  {
    init_simple_test("BFu9i_Ip_BFu9s");
    static STRUCT_IF_C BFu9i_Ip_BFu9s lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Ip_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu9s");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_BFu9s.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 9, 1, "BFu9i_Ip_BFu9s");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_BFu9s, BFu9i_Ip_BFu9s)
//============================================================================



static void Test_BFu9i_Ip_C()
{
  {
    init_simple_test("BFu9i_Ip_C");
    static STRUCT_IF_C BFu9i_Ip_C lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Ip_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_C");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_C.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Ip_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_C, BFu9i_Ip_C)
//============================================================================



static void Test_BFu9i_Ip_D()
{
  {
    init_simple_test("BFu9i_Ip_D");
    static STRUCT_IF_C BFu9i_Ip_D lv;
    check2(sizeof(lv), ABISELECT(18,14), "sizeof(BFu9i_Ip_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_D");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_D.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Ip_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_D, BFu9i_Ip_D)
//============================================================================



static void Test_BFu9i_Ip_F()
{
  {
    init_simple_test("BFu9i_Ip_F");
    static STRUCT_IF_C BFu9i_Ip_F lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_Ip_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_F");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_F.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Ip_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_F, BFu9i_Ip_F)
//============================================================================



static void Test_BFu9i_Ip_I()
{
  {
    init_simple_test("BFu9i_Ip_I");
    static STRUCT_IF_C BFu9i_Ip_I lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_Ip_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_I");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_I.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Ip_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_I, BFu9i_Ip_I)
//============================================================================



static void Test_BFu9i_Ip_Ip()
{
  {
    init_simple_test("BFu9i_Ip_Ip");
    static STRUCT_IF_C BFu9i_Ip_Ip lv;
    check2(sizeof(lv), ABISELECT(18,10), "sizeof(BFu9i_Ip_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_Ip");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_Ip.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Ip_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_Ip, BFu9i_Ip_Ip)
//============================================================================



static void Test_BFu9i_Ip_L()
{
  {
    init_simple_test("BFu9i_Ip_L");
    static STRUCT_IF_C BFu9i_Ip_L lv;
    check2(sizeof(lv), ABISELECT(18,14), "sizeof(BFu9i_Ip_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_L");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_L.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Ip_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_L, BFu9i_Ip_L)
//============================================================================



static void Test_BFu9i_Ip_S()
{
  {
    init_simple_test("BFu9i_Ip_S");
    static STRUCT_IF_C BFu9i_Ip_S lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Ip_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_S");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_S.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Ip_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_S, BFu9i_Ip_S)
//============================================================================



static void Test_BFu9i_Ip_Uc()
{
  {
    init_simple_test("BFu9i_Ip_Uc");
    static STRUCT_IF_C BFu9i_Ip_Uc lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Ip_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_Uc");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_Uc.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Ip_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_Uc, BFu9i_Ip_Uc)
//============================================================================



static void Test_BFu9i_Ip_Ui()
{
  {
    init_simple_test("BFu9i_Ip_Ui");
    static STRUCT_IF_C BFu9i_Ip_Ui lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_Ip_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_Ui");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_Ui.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Ip_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_Ui, BFu9i_Ip_Ui)
//============================================================================



static void Test_BFu9i_Ip_Ul()
{
  {
    init_simple_test("BFu9i_Ip_Ul");
    static STRUCT_IF_C BFu9i_Ip_Ul lv;
    check2(sizeof(lv), ABISELECT(18,14), "sizeof(BFu9i_Ip_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_Ul");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_Ul.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Ip_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_Ul, BFu9i_Ip_Ul)
//============================================================================



static void Test_BFu9i_Ip_Us()
{
  {
    init_simple_test("BFu9i_Ip_Us");
    static STRUCT_IF_C BFu9i_Ip_Us lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Ip_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_Us");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_Us.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Ip_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_Us, BFu9i_Ip_Us)
//============================================================================



static void Test_BFu9i_Ip_Vp()
{
  {
    init_simple_test("BFu9i_Ip_Vp");
    static STRUCT_IF_C BFu9i_Ip_Vp lv;
    check2(sizeof(lv), ABISELECT(18,10), "sizeof(BFu9i_Ip_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ip_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ip_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ip_Vp");
    check_field_offset(lv, v2, 2, "BFu9i_Ip_Vp.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Ip_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ip_Vp, BFu9i_Ip_Vp)
//============================================================================



static void Test_BFu9i_L()
{
  {
    init_simple_test("BFu9i_L");
    static STRUCT_IF_C BFu9i_L lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L");
    check_field_offset(lv, v2, 2, "BFu9i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L, BFu9i_L)
//============================================================================



static void Test_BFu9i_L_BFu15i()
{
  {
    init_simple_test("BFu9i_L_BFu15i");
    static STRUCT_IF_C BFu9i_L_BFu15i lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_L_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu15i");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu15i.v2");
    set_bf_and_test(lv, v3, 10, 0, 15, 1, "BFu9i_L_BFu15i");
    set_bf_and_test(lv, v3, 10, 0, 15, hide_ull(1LL<<14), "BFu9i_L_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu15i, BFu9i_L_BFu15i)
//============================================================================



static void Test_BFu9i_L_BFu15ll()
{
  {
    init_simple_test("BFu9i_L_BFu15ll");
    static STRUCT_IF_C BFu9i_L_BFu15ll lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_L_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu15ll");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu15ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 15, 1, "BFu9i_L_BFu15ll");
    set_bf_and_test(lv, v3, 10, 0, 15, hide_ull(1LL<<14), "BFu9i_L_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu15ll, BFu9i_L_BFu15ll)
//============================================================================



static void Test_BFu9i_L_BFu15s()
{
  {
    init_simple_test("BFu9i_L_BFu15s");
    static STRUCT_IF_C BFu9i_L_BFu15s lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_L_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu15s");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu15s.v2");
    set_bf_and_test(lv, v3, 10, 0, 15, 1, "BFu9i_L_BFu15s");
    set_bf_and_test(lv, v3, 10, 0, 15, hide_ull(1LL<<14), "BFu9i_L_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu15s, BFu9i_L_BFu15s)
//============================================================================



static void Test_BFu9i_L_BFu16i()
{
  {
    init_simple_test("BFu9i_L_BFu16i");
    static STRUCT_IF_C BFu9i_L_BFu16i lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_L_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu16i");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu16i.v2");
    set_bf_and_test(lv, v3, 10, 0, 16, 1, "BFu9i_L_BFu16i");
    set_bf_and_test(lv, v3, 10, 0, 16, hide_ull(1LL<<15), "BFu9i_L_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu16i, BFu9i_L_BFu16i)
//============================================================================



static void Test_BFu9i_L_BFu16ll()
{
  {
    init_simple_test("BFu9i_L_BFu16ll");
    static STRUCT_IF_C BFu9i_L_BFu16ll lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_L_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu16ll");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu16ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 16, 1, "BFu9i_L_BFu16ll");
    set_bf_and_test(lv, v3, 10, 0, 16, hide_ull(1LL<<15), "BFu9i_L_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu16ll, BFu9i_L_BFu16ll)
//============================================================================



static void Test_BFu9i_L_BFu16s()
{
  {
    init_simple_test("BFu9i_L_BFu16s");
    static STRUCT_IF_C BFu9i_L_BFu16s lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_L_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu16s");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu16s.v2");
    set_bf_and_test(lv, v3, 10, 0, 16, 1, "BFu9i_L_BFu16s");
    set_bf_and_test(lv, v3, 10, 0, 16, hide_ull(1LL<<15), "BFu9i_L_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu16s, BFu9i_L_BFu16s)
//============================================================================



static void Test_BFu9i_L_BFu17i()
{
  {
    init_simple_test("BFu9i_L_BFu17i");
    static STRUCT_IF_C BFu9i_L_BFu17i lv;
    check2(sizeof(lv), 13, "sizeof(BFu9i_L_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu17i");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu17i.v2");
    set_bf_and_test(lv, v3, 10, 0, 17, 1, "BFu9i_L_BFu17i");
    set_bf_and_test(lv, v3, 10, 0, 17, hide_ull(1LL<<16), "BFu9i_L_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu17i, BFu9i_L_BFu17i)
//============================================================================



static void Test_BFu9i_L_BFu17ll()
{
  {
    init_simple_test("BFu9i_L_BFu17ll");
    static STRUCT_IF_C BFu9i_L_BFu17ll lv;
    check2(sizeof(lv), 13, "sizeof(BFu9i_L_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu17ll");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu17ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 17, 1, "BFu9i_L_BFu17ll");
    set_bf_and_test(lv, v3, 10, 0, 17, hide_ull(1LL<<16), "BFu9i_L_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu17ll, BFu9i_L_BFu17ll)
//============================================================================



static void Test_BFu9i_L_BFu1c()
{
  {
    init_simple_test("BFu9i_L_BFu1c");
    static STRUCT_IF_C BFu9i_L_BFu1c lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_L_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu1c");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu1c.v2");
    set_bf_and_test(lv, v3, 10, 0, 1, 1, "BFu9i_L_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu1c, BFu9i_L_BFu1c)
//============================================================================



static void Test_BFu9i_L_BFu1i()
{
  {
    init_simple_test("BFu9i_L_BFu1i");
    static STRUCT_IF_C BFu9i_L_BFu1i lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_L_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu1i");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu1i.v2");
    set_bf_and_test(lv, v3, 10, 0, 1, 1, "BFu9i_L_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu1i, BFu9i_L_BFu1i)
//============================================================================



static void Test_BFu9i_L_BFu1ll()
{
  {
    init_simple_test("BFu9i_L_BFu1ll");
    static STRUCT_IF_C BFu9i_L_BFu1ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_L_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu1ll");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu1ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 1, 1, "BFu9i_L_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu1ll, BFu9i_L_BFu1ll)
//============================================================================



static void Test_BFu9i_L_BFu1s()
{
  {
    init_simple_test("BFu9i_L_BFu1s");
    static STRUCT_IF_C BFu9i_L_BFu1s lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_L_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu1s");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu1s.v2");
    set_bf_and_test(lv, v3, 10, 0, 1, 1, "BFu9i_L_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu1s, BFu9i_L_BFu1s)
//============================================================================



static void Test_BFu9i_L_BFu31i()
{
  {
    init_simple_test("BFu9i_L_BFu31i");
    static STRUCT_IF_C BFu9i_L_BFu31i lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_L_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu31i");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu31i.v2");
    set_bf_and_test(lv, v3, 10, 0, 31, 1, "BFu9i_L_BFu31i");
    set_bf_and_test(lv, v3, 10, 0, 31, hide_ull(1LL<<30), "BFu9i_L_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu31i, BFu9i_L_BFu31i)
//============================================================================



static void Test_BFu9i_L_BFu31ll()
{
  {
    init_simple_test("BFu9i_L_BFu31ll");
    static STRUCT_IF_C BFu9i_L_BFu31ll lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_L_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu31ll");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu31ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 31, 1, "BFu9i_L_BFu31ll");
    set_bf_and_test(lv, v3, 10, 0, 31, hide_ull(1LL<<30), "BFu9i_L_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu31ll, BFu9i_L_BFu31ll)
//============================================================================



static void Test_BFu9i_L_BFu32i()
{
  {
    init_simple_test("BFu9i_L_BFu32i");
    static STRUCT_IF_C BFu9i_L_BFu32i lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_L_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu32i");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu32i.v2");
    set_bf_and_test(lv, v3, 10, 0, 32, 1, "BFu9i_L_BFu32i");
    set_bf_and_test(lv, v3, 10, 0, 32, hide_ull(1LL<<31), "BFu9i_L_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu32i, BFu9i_L_BFu32i)
//============================================================================



static void Test_BFu9i_L_BFu32ll()
{
  {
    init_simple_test("BFu9i_L_BFu32ll");
    static STRUCT_IF_C BFu9i_L_BFu32ll lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_L_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu32ll");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu32ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 32, 1, "BFu9i_L_BFu32ll");
    set_bf_and_test(lv, v3, 10, 0, 32, hide_ull(1LL<<31), "BFu9i_L_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu32ll, BFu9i_L_BFu32ll)
//============================================================================



static void Test_BFu9i_L_BFu33()
{
  {
    init_simple_test("BFu9i_L_BFu33");
    static STRUCT_IF_C BFu9i_L_BFu33 lv;
    check2(sizeof(lv), 15, "sizeof(BFu9i_L_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu33");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu33.v2");
    set_bf_and_test(lv, v3, 10, 0, 33, 1, "BFu9i_L_BFu33");
    set_bf_and_test(lv, v3, 10, 0, 33, hide_ull(1LL<<32), "BFu9i_L_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu33, BFu9i_L_BFu33)
//============================================================================



static void Test_BFu9i_L_BFu7c()
{
  {
    init_simple_test("BFu9i_L_BFu7c");
    static STRUCT_IF_C BFu9i_L_BFu7c lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_L_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu7c");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu7c.v2");
    set_bf_and_test(lv, v3, 10, 0, 7, 1, "BFu9i_L_BFu7c");
    set_bf_and_test(lv, v3, 10, 0, 7, hide_ull(1LL<<6), "BFu9i_L_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu7c, BFu9i_L_BFu7c)
//============================================================================



static void Test_BFu9i_L_BFu7i()
{
  {
    init_simple_test("BFu9i_L_BFu7i");
    static STRUCT_IF_C BFu9i_L_BFu7i lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_L_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu7i");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu7i.v2");
    set_bf_and_test(lv, v3, 10, 0, 7, 1, "BFu9i_L_BFu7i");
    set_bf_and_test(lv, v3, 10, 0, 7, hide_ull(1LL<<6), "BFu9i_L_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu7i, BFu9i_L_BFu7i)
//============================================================================



static void Test_BFu9i_L_BFu7ll()
{
  {
    init_simple_test("BFu9i_L_BFu7ll");
    static STRUCT_IF_C BFu9i_L_BFu7ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_L_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu7ll");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu7ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 7, 1, "BFu9i_L_BFu7ll");
    set_bf_and_test(lv, v3, 10, 0, 7, hide_ull(1LL<<6), "BFu9i_L_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu7ll, BFu9i_L_BFu7ll)
//============================================================================



static void Test_BFu9i_L_BFu7s()
{
  {
    init_simple_test("BFu9i_L_BFu7s");
    static STRUCT_IF_C BFu9i_L_BFu7s lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_L_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu7s");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu7s.v2");
    set_bf_and_test(lv, v3, 10, 0, 7, 1, "BFu9i_L_BFu7s");
    set_bf_and_test(lv, v3, 10, 0, 7, hide_ull(1LL<<6), "BFu9i_L_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu7s, BFu9i_L_BFu7s)
//============================================================================



static void Test_BFu9i_L_BFu8c()
{
  {
    init_simple_test("BFu9i_L_BFu8c");
    static STRUCT_IF_C BFu9i_L_BFu8c lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_L_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu8c");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu8c.v2");
    set_bf_and_test(lv, v3, 10, 0, 8, 1, "BFu9i_L_BFu8c");
    set_bf_and_test(lv, v3, 10, 0, 8, hide_ull(1LL<<7), "BFu9i_L_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu8c, BFu9i_L_BFu8c)
//============================================================================



static void Test_BFu9i_L_BFu8i()
{
  {
    init_simple_test("BFu9i_L_BFu8i");
    static STRUCT_IF_C BFu9i_L_BFu8i lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_L_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu8i");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu8i.v2");
    set_bf_and_test(lv, v3, 10, 0, 8, 1, "BFu9i_L_BFu8i");
    set_bf_and_test(lv, v3, 10, 0, 8, hide_ull(1LL<<7), "BFu9i_L_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu8i, BFu9i_L_BFu8i)
//============================================================================



static void Test_BFu9i_L_BFu8ll()
{
  {
    init_simple_test("BFu9i_L_BFu8ll");
    static STRUCT_IF_C BFu9i_L_BFu8ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_L_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu8ll");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu8ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 8, 1, "BFu9i_L_BFu8ll");
    set_bf_and_test(lv, v3, 10, 0, 8, hide_ull(1LL<<7), "BFu9i_L_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu8ll, BFu9i_L_BFu8ll)
//============================================================================



static void Test_BFu9i_L_BFu8s()
{
  {
    init_simple_test("BFu9i_L_BFu8s");
    static STRUCT_IF_C BFu9i_L_BFu8s lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_L_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu8s");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu8s.v2");
    set_bf_and_test(lv, v3, 10, 0, 8, 1, "BFu9i_L_BFu8s");
    set_bf_and_test(lv, v3, 10, 0, 8, hide_ull(1LL<<7), "BFu9i_L_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu8s, BFu9i_L_BFu8s)
//============================================================================



static void Test_BFu9i_L_BFu9i()
{
  {
    init_simple_test("BFu9i_L_BFu9i");
    static STRUCT_IF_C BFu9i_L_BFu9i lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_L_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu9i");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu9i.v2");
    set_bf_and_test(lv, v3, 10, 0, 9, 1, "BFu9i_L_BFu9i");
    set_bf_and_test(lv, v3, 10, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu9i, BFu9i_L_BFu9i)
//============================================================================



static void Test_BFu9i_L_BFu9ll()
{
  {
    init_simple_test("BFu9i_L_BFu9ll");
    static STRUCT_IF_C BFu9i_L_BFu9ll lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_L_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu9ll");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu9ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 9, 1, "BFu9i_L_BFu9ll");
    set_bf_and_test(lv, v3, 10, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu9ll, BFu9i_L_BFu9ll)
//============================================================================



static void Test_BFu9i_L_BFu9s()
{
  {
    init_simple_test("BFu9i_L_BFu9s");
    static STRUCT_IF_C BFu9i_L_BFu9s lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_L_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu9s");
    check_field_offset(lv, v2, 2, "BFu9i_L_BFu9s.v2");
    set_bf_and_test(lv, v3, 10, 0, 9, 1, "BFu9i_L_BFu9s");
    set_bf_and_test(lv, v3, 10, 0, 9, hide_ull(1LL<<8), "BFu9i_L_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_BFu9s, BFu9i_L_BFu9s)
//============================================================================



static void Test_BFu9i_L_C()
{
  {
    init_simple_test("BFu9i_L_C");
    static STRUCT_IF_C BFu9i_L_C lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_L_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_C");
    check_field_offset(lv, v2, 2, "BFu9i_L_C.v2");
    check_field_offset(lv, v3, 10, "BFu9i_L_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_C, BFu9i_L_C)
//============================================================================



static void Test_BFu9i_L_D()
{
  {
    init_simple_test("BFu9i_L_D");
    static STRUCT_IF_C BFu9i_L_D lv;
    check2(sizeof(lv), 18, "sizeof(BFu9i_L_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_D");
    check_field_offset(lv, v2, 2, "BFu9i_L_D.v2");
    check_field_offset(lv, v3, 10, "BFu9i_L_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_D, BFu9i_L_D)
//============================================================================



static void Test_BFu9i_L_F()
{
  {
    init_simple_test("BFu9i_L_F");
    static STRUCT_IF_C BFu9i_L_F lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_L_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_F");
    check_field_offset(lv, v2, 2, "BFu9i_L_F.v2");
    check_field_offset(lv, v3, 10, "BFu9i_L_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_F, BFu9i_L_F)
//============================================================================



static void Test_BFu9i_L_I()
{
  {
    init_simple_test("BFu9i_L_I");
    static STRUCT_IF_C BFu9i_L_I lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_L_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_I");
    check_field_offset(lv, v2, 2, "BFu9i_L_I.v2");
    check_field_offset(lv, v3, 10, "BFu9i_L_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_I, BFu9i_L_I)
//============================================================================



static void Test_BFu9i_L_Ip()
{
  {
    init_simple_test("BFu9i_L_Ip");
    static STRUCT_IF_C BFu9i_L_Ip lv;
    check2(sizeof(lv), ABISELECT(18,14), "sizeof(BFu9i_L_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_Ip");
    check_field_offset(lv, v2, 2, "BFu9i_L_Ip.v2");
    check_field_offset(lv, v3, 10, "BFu9i_L_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_Ip, BFu9i_L_Ip)
//============================================================================



static void Test_BFu9i_L_L()
{
  {
    init_simple_test("BFu9i_L_L");
    static STRUCT_IF_C BFu9i_L_L lv;
    check2(sizeof(lv), 18, "sizeof(BFu9i_L_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_L");
    check_field_offset(lv, v2, 2, "BFu9i_L_L.v2");
    check_field_offset(lv, v3, 10, "BFu9i_L_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_L, BFu9i_L_L)
//============================================================================



static void Test_BFu9i_L_S()
{
  {
    init_simple_test("BFu9i_L_S");
    static STRUCT_IF_C BFu9i_L_S lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_L_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_S");
    check_field_offset(lv, v2, 2, "BFu9i_L_S.v2");
    check_field_offset(lv, v3, 10, "BFu9i_L_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_S, BFu9i_L_S)
//============================================================================



static void Test_BFu9i_L_Uc()
{
  {
    init_simple_test("BFu9i_L_Uc");
    static STRUCT_IF_C BFu9i_L_Uc lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_L_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_Uc");
    check_field_offset(lv, v2, 2, "BFu9i_L_Uc.v2");
    check_field_offset(lv, v3, 10, "BFu9i_L_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_Uc, BFu9i_L_Uc)
//============================================================================



static void Test_BFu9i_L_Ui()
{
  {
    init_simple_test("BFu9i_L_Ui");
    static STRUCT_IF_C BFu9i_L_Ui lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_L_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_Ui");
    check_field_offset(lv, v2, 2, "BFu9i_L_Ui.v2");
    check_field_offset(lv, v3, 10, "BFu9i_L_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_Ui, BFu9i_L_Ui)
//============================================================================



static void Test_BFu9i_L_Ul()
{
  {
    init_simple_test("BFu9i_L_Ul");
    static STRUCT_IF_C BFu9i_L_Ul lv;
    check2(sizeof(lv), 18, "sizeof(BFu9i_L_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_Ul");
    check_field_offset(lv, v2, 2, "BFu9i_L_Ul.v2");
    check_field_offset(lv, v3, 10, "BFu9i_L_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_Ul, BFu9i_L_Ul)
//============================================================================



static void Test_BFu9i_L_Us()
{
  {
    init_simple_test("BFu9i_L_Us");
    static STRUCT_IF_C BFu9i_L_Us lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_L_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_Us");
    check_field_offset(lv, v2, 2, "BFu9i_L_Us.v2");
    check_field_offset(lv, v3, 10, "BFu9i_L_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_Us, BFu9i_L_Us)
//============================================================================



static void Test_BFu9i_L_Vp()
{
  {
    init_simple_test("BFu9i_L_Vp");
    static STRUCT_IF_C BFu9i_L_Vp lv;
    check2(sizeof(lv), ABISELECT(18,14), "sizeof(BFu9i_L_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_L_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_L_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_L_Vp");
    check_field_offset(lv, v2, 2, "BFu9i_L_Vp.v2");
    check_field_offset(lv, v3, 10, "BFu9i_L_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_L_Vp, BFu9i_L_Vp)
//============================================================================



static void Test_BFu9i_S()
{
  {
    init_simple_test("BFu9i_S");
    static STRUCT_IF_C BFu9i_S lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S");
    check_field_offset(lv, v2, 2, "BFu9i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S, BFu9i_S)
//============================================================================



static void Test_BFu9i_S_BFu15i()
{
  {
    init_simple_test("BFu9i_S_BFu15i");
    static STRUCT_IF_C BFu9i_S_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_S_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu15i");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu15i.v2");
    set_bf_and_test(lv, v3, 4, 0, 15, 1, "BFu9i_S_BFu15i");
    set_bf_and_test(lv, v3, 4, 0, 15, hide_ull(1LL<<14), "BFu9i_S_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu15i, BFu9i_S_BFu15i)
//============================================================================



static void Test_BFu9i_S_BFu15ll()
{
  {
    init_simple_test("BFu9i_S_BFu15ll");
    static STRUCT_IF_C BFu9i_S_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_S_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu15ll");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu15ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 15, 1, "BFu9i_S_BFu15ll");
    set_bf_and_test(lv, v3, 4, 0, 15, hide_ull(1LL<<14), "BFu9i_S_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu15ll, BFu9i_S_BFu15ll)
//============================================================================



static void Test_BFu9i_S_BFu15s()
{
  {
    init_simple_test("BFu9i_S_BFu15s");
    static STRUCT_IF_C BFu9i_S_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_S_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu15s");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu15s.v2");
    set_bf_and_test(lv, v3, 4, 0, 15, 1, "BFu9i_S_BFu15s");
    set_bf_and_test(lv, v3, 4, 0, 15, hide_ull(1LL<<14), "BFu9i_S_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu15s, BFu9i_S_BFu15s)
//============================================================================



static void Test_BFu9i_S_BFu16i()
{
  {
    init_simple_test("BFu9i_S_BFu16i");
    static STRUCT_IF_C BFu9i_S_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_S_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu16i");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu16i.v2");
    set_bf_and_test(lv, v3, 4, 0, 16, 1, "BFu9i_S_BFu16i");
    set_bf_and_test(lv, v3, 4, 0, 16, hide_ull(1LL<<15), "BFu9i_S_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu16i, BFu9i_S_BFu16i)
//============================================================================



static void Test_BFu9i_S_BFu16ll()
{
  {
    init_simple_test("BFu9i_S_BFu16ll");
    static STRUCT_IF_C BFu9i_S_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_S_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu16ll");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu16ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 16, 1, "BFu9i_S_BFu16ll");
    set_bf_and_test(lv, v3, 4, 0, 16, hide_ull(1LL<<15), "BFu9i_S_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu16ll, BFu9i_S_BFu16ll)
//============================================================================



static void Test_BFu9i_S_BFu16s()
{
  {
    init_simple_test("BFu9i_S_BFu16s");
    static STRUCT_IF_C BFu9i_S_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_S_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu16s");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu16s.v2");
    set_bf_and_test(lv, v3, 4, 0, 16, 1, "BFu9i_S_BFu16s");
    set_bf_and_test(lv, v3, 4, 0, 16, hide_ull(1LL<<15), "BFu9i_S_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu16s, BFu9i_S_BFu16s)
//============================================================================



static void Test_BFu9i_S_BFu17i()
{
  {
    init_simple_test("BFu9i_S_BFu17i");
    static STRUCT_IF_C BFu9i_S_BFu17i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_S_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu17i");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu17i.v2");
    set_bf_and_test(lv, v3, 4, 0, 17, 1, "BFu9i_S_BFu17i");
    set_bf_and_test(lv, v3, 4, 0, 17, hide_ull(1LL<<16), "BFu9i_S_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu17i, BFu9i_S_BFu17i)
//============================================================================



static void Test_BFu9i_S_BFu17ll()
{
  {
    init_simple_test("BFu9i_S_BFu17ll");
    static STRUCT_IF_C BFu9i_S_BFu17ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_S_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu17ll");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu17ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 17, 1, "BFu9i_S_BFu17ll");
    set_bf_and_test(lv, v3, 4, 0, 17, hide_ull(1LL<<16), "BFu9i_S_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu17ll, BFu9i_S_BFu17ll)
//============================================================================



static void Test_BFu9i_S_BFu1c()
{
  {
    init_simple_test("BFu9i_S_BFu1c");
    static STRUCT_IF_C BFu9i_S_BFu1c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_S_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu1c");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu1c.v2");
    set_bf_and_test(lv, v3, 4, 0, 1, 1, "BFu9i_S_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu1c, BFu9i_S_BFu1c)
//============================================================================



static void Test_BFu9i_S_BFu1i()
{
  {
    init_simple_test("BFu9i_S_BFu1i");
    static STRUCT_IF_C BFu9i_S_BFu1i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_S_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu1i");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu1i.v2");
    set_bf_and_test(lv, v3, 4, 0, 1, 1, "BFu9i_S_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu1i, BFu9i_S_BFu1i)
//============================================================================



static void Test_BFu9i_S_BFu1ll()
{
  {
    init_simple_test("BFu9i_S_BFu1ll");
    static STRUCT_IF_C BFu9i_S_BFu1ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_S_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu1ll");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu1ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 1, 1, "BFu9i_S_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu1ll, BFu9i_S_BFu1ll)
//============================================================================



static void Test_BFu9i_S_BFu1s()
{
  {
    init_simple_test("BFu9i_S_BFu1s");
    static STRUCT_IF_C BFu9i_S_BFu1s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_S_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu1s");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu1s.v2");
    set_bf_and_test(lv, v3, 4, 0, 1, 1, "BFu9i_S_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu1s, BFu9i_S_BFu1s)
//============================================================================



static void Test_BFu9i_S_BFu31i()
{
  {
    init_simple_test("BFu9i_S_BFu31i");
    static STRUCT_IF_C BFu9i_S_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_S_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu31i");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu31i.v2");
    set_bf_and_test(lv, v3, 4, 0, 31, 1, "BFu9i_S_BFu31i");
    set_bf_and_test(lv, v3, 4, 0, 31, hide_ull(1LL<<30), "BFu9i_S_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu31i, BFu9i_S_BFu31i)
//============================================================================



static void Test_BFu9i_S_BFu31ll()
{
  {
    init_simple_test("BFu9i_S_BFu31ll");
    static STRUCT_IF_C BFu9i_S_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_S_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu31ll");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu31ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 31, 1, "BFu9i_S_BFu31ll");
    set_bf_and_test(lv, v3, 4, 0, 31, hide_ull(1LL<<30), "BFu9i_S_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu31ll, BFu9i_S_BFu31ll)
//============================================================================



static void Test_BFu9i_S_BFu32i()
{
  {
    init_simple_test("BFu9i_S_BFu32i");
    static STRUCT_IF_C BFu9i_S_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_S_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu32i");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu32i.v2");
    set_bf_and_test(lv, v3, 4, 0, 32, 1, "BFu9i_S_BFu32i");
    set_bf_and_test(lv, v3, 4, 0, 32, hide_ull(1LL<<31), "BFu9i_S_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu32i, BFu9i_S_BFu32i)
//============================================================================



static void Test_BFu9i_S_BFu32ll()
{
  {
    init_simple_test("BFu9i_S_BFu32ll");
    static STRUCT_IF_C BFu9i_S_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_S_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu32ll");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu32ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 32, 1, "BFu9i_S_BFu32ll");
    set_bf_and_test(lv, v3, 4, 0, 32, hide_ull(1LL<<31), "BFu9i_S_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu32ll, BFu9i_S_BFu32ll)
//============================================================================



static void Test_BFu9i_S_BFu33()
{
  {
    init_simple_test("BFu9i_S_BFu33");
    static STRUCT_IF_C BFu9i_S_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_S_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu33");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu33.v2");
    set_bf_and_test(lv, v3, 4, 0, 33, 1, "BFu9i_S_BFu33");
    set_bf_and_test(lv, v3, 4, 0, 33, hide_ull(1LL<<32), "BFu9i_S_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu33, BFu9i_S_BFu33)
//============================================================================



static void Test_BFu9i_S_BFu7c()
{
  {
    init_simple_test("BFu9i_S_BFu7c");
    static STRUCT_IF_C BFu9i_S_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_S_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu7c");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu7c.v2");
    set_bf_and_test(lv, v3, 4, 0, 7, 1, "BFu9i_S_BFu7c");
    set_bf_and_test(lv, v3, 4, 0, 7, hide_ull(1LL<<6), "BFu9i_S_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu7c, BFu9i_S_BFu7c)
//============================================================================



static void Test_BFu9i_S_BFu7i()
{
  {
    init_simple_test("BFu9i_S_BFu7i");
    static STRUCT_IF_C BFu9i_S_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_S_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu7i");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu7i.v2");
    set_bf_and_test(lv, v3, 4, 0, 7, 1, "BFu9i_S_BFu7i");
    set_bf_and_test(lv, v3, 4, 0, 7, hide_ull(1LL<<6), "BFu9i_S_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu7i, BFu9i_S_BFu7i)
//============================================================================



static void Test_BFu9i_S_BFu7ll()
{
  {
    init_simple_test("BFu9i_S_BFu7ll");
    static STRUCT_IF_C BFu9i_S_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_S_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu7ll");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu7ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 7, 1, "BFu9i_S_BFu7ll");
    set_bf_and_test(lv, v3, 4, 0, 7, hide_ull(1LL<<6), "BFu9i_S_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu7ll, BFu9i_S_BFu7ll)
//============================================================================



static void Test_BFu9i_S_BFu7s()
{
  {
    init_simple_test("BFu9i_S_BFu7s");
    static STRUCT_IF_C BFu9i_S_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_S_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu7s");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu7s.v2");
    set_bf_and_test(lv, v3, 4, 0, 7, 1, "BFu9i_S_BFu7s");
    set_bf_and_test(lv, v3, 4, 0, 7, hide_ull(1LL<<6), "BFu9i_S_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu7s, BFu9i_S_BFu7s)
//============================================================================



static void Test_BFu9i_S_BFu8c()
{
  {
    init_simple_test("BFu9i_S_BFu8c");
    static STRUCT_IF_C BFu9i_S_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_S_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu8c");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu8c.v2");
    set_bf_and_test(lv, v3, 4, 0, 8, 1, "BFu9i_S_BFu8c");
    set_bf_and_test(lv, v3, 4, 0, 8, hide_ull(1LL<<7), "BFu9i_S_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu8c, BFu9i_S_BFu8c)
//============================================================================



static void Test_BFu9i_S_BFu8i()
{
  {
    init_simple_test("BFu9i_S_BFu8i");
    static STRUCT_IF_C BFu9i_S_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_S_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu8i");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu8i.v2");
    set_bf_and_test(lv, v3, 4, 0, 8, 1, "BFu9i_S_BFu8i");
    set_bf_and_test(lv, v3, 4, 0, 8, hide_ull(1LL<<7), "BFu9i_S_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu8i, BFu9i_S_BFu8i)
//============================================================================



static void Test_BFu9i_S_BFu8ll()
{
  {
    init_simple_test("BFu9i_S_BFu8ll");
    static STRUCT_IF_C BFu9i_S_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_S_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu8ll");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu8ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 8, 1, "BFu9i_S_BFu8ll");
    set_bf_and_test(lv, v3, 4, 0, 8, hide_ull(1LL<<7), "BFu9i_S_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu8ll, BFu9i_S_BFu8ll)
//============================================================================



static void Test_BFu9i_S_BFu8s()
{
  {
    init_simple_test("BFu9i_S_BFu8s");
    static STRUCT_IF_C BFu9i_S_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_S_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu8s");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu8s.v2");
    set_bf_and_test(lv, v3, 4, 0, 8, 1, "BFu9i_S_BFu8s");
    set_bf_and_test(lv, v3, 4, 0, 8, hide_ull(1LL<<7), "BFu9i_S_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu8s, BFu9i_S_BFu8s)
//============================================================================



static void Test_BFu9i_S_BFu9i()
{
  {
    init_simple_test("BFu9i_S_BFu9i");
    static STRUCT_IF_C BFu9i_S_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_S_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu9i");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu9i.v2");
    set_bf_and_test(lv, v3, 4, 0, 9, 1, "BFu9i_S_BFu9i");
    set_bf_and_test(lv, v3, 4, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu9i, BFu9i_S_BFu9i)
//============================================================================



static void Test_BFu9i_S_BFu9ll()
{
  {
    init_simple_test("BFu9i_S_BFu9ll");
    static STRUCT_IF_C BFu9i_S_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_S_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu9ll");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu9ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 9, 1, "BFu9i_S_BFu9ll");
    set_bf_and_test(lv, v3, 4, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu9ll, BFu9i_S_BFu9ll)
//============================================================================



static void Test_BFu9i_S_BFu9s()
{
  {
    init_simple_test("BFu9i_S_BFu9s");
    static STRUCT_IF_C BFu9i_S_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_S_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu9s");
    check_field_offset(lv, v2, 2, "BFu9i_S_BFu9s.v2");
    set_bf_and_test(lv, v3, 4, 0, 9, 1, "BFu9i_S_BFu9s");
    set_bf_and_test(lv, v3, 4, 0, 9, hide_ull(1LL<<8), "BFu9i_S_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_BFu9s, BFu9i_S_BFu9s)
//============================================================================



static void Test_BFu9i_S_C()
{
  {
    init_simple_test("BFu9i_S_C");
    static STRUCT_IF_C BFu9i_S_C lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_S_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_C");
    check_field_offset(lv, v2, 2, "BFu9i_S_C.v2");
    check_field_offset(lv, v3, 4, "BFu9i_S_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_C, BFu9i_S_C)
//============================================================================



static void Test_BFu9i_S_D()
{
  {
    init_simple_test("BFu9i_S_D");
    static STRUCT_IF_C BFu9i_S_D lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_S_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_D");
    check_field_offset(lv, v2, 2, "BFu9i_S_D.v2");
    check_field_offset(lv, v3, 4, "BFu9i_S_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_D, BFu9i_S_D)
//============================================================================



static void Test_BFu9i_S_F()
{
  {
    init_simple_test("BFu9i_S_F");
    static STRUCT_IF_C BFu9i_S_F lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_S_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_F");
    check_field_offset(lv, v2, 2, "BFu9i_S_F.v2");
    check_field_offset(lv, v3, 4, "BFu9i_S_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_F, BFu9i_S_F)
//============================================================================



static void Test_BFu9i_S_I()
{
  {
    init_simple_test("BFu9i_S_I");
    static STRUCT_IF_C BFu9i_S_I lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_S_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_I");
    check_field_offset(lv, v2, 2, "BFu9i_S_I.v2");
    check_field_offset(lv, v3, 4, "BFu9i_S_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_I, BFu9i_S_I)
//============================================================================



static void Test_BFu9i_S_Ip()
{
  {
    init_simple_test("BFu9i_S_Ip");
    static STRUCT_IF_C BFu9i_S_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_S_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_Ip");
    check_field_offset(lv, v2, 2, "BFu9i_S_Ip.v2");
    check_field_offset(lv, v3, 4, "BFu9i_S_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_Ip, BFu9i_S_Ip)
//============================================================================



static void Test_BFu9i_S_L()
{
  {
    init_simple_test("BFu9i_S_L");
    static STRUCT_IF_C BFu9i_S_L lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_S_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_L");
    check_field_offset(lv, v2, 2, "BFu9i_S_L.v2");
    check_field_offset(lv, v3, 4, "BFu9i_S_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_L, BFu9i_S_L)
//============================================================================



static void Test_BFu9i_S_S()
{
  {
    init_simple_test("BFu9i_S_S");
    static STRUCT_IF_C BFu9i_S_S lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_S_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_S");
    check_field_offset(lv, v2, 2, "BFu9i_S_S.v2");
    check_field_offset(lv, v3, 4, "BFu9i_S_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_S, BFu9i_S_S)
//============================================================================



static void Test_BFu9i_S_Uc()
{
  {
    init_simple_test("BFu9i_S_Uc");
    static STRUCT_IF_C BFu9i_S_Uc lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_S_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_Uc");
    check_field_offset(lv, v2, 2, "BFu9i_S_Uc.v2");
    check_field_offset(lv, v3, 4, "BFu9i_S_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_Uc, BFu9i_S_Uc)
//============================================================================



static void Test_BFu9i_S_Ui()
{
  {
    init_simple_test("BFu9i_S_Ui");
    static STRUCT_IF_C BFu9i_S_Ui lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_S_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_Ui");
    check_field_offset(lv, v2, 2, "BFu9i_S_Ui.v2");
    check_field_offset(lv, v3, 4, "BFu9i_S_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_Ui, BFu9i_S_Ui)
//============================================================================



static void Test_BFu9i_S_Ul()
{
  {
    init_simple_test("BFu9i_S_Ul");
    static STRUCT_IF_C BFu9i_S_Ul lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_S_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_Ul");
    check_field_offset(lv, v2, 2, "BFu9i_S_Ul.v2");
    check_field_offset(lv, v3, 4, "BFu9i_S_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_Ul, BFu9i_S_Ul)
//============================================================================



static void Test_BFu9i_S_Us()
{
  {
    init_simple_test("BFu9i_S_Us");
    static STRUCT_IF_C BFu9i_S_Us lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_S_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_Us");
    check_field_offset(lv, v2, 2, "BFu9i_S_Us.v2");
    check_field_offset(lv, v3, 4, "BFu9i_S_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_Us, BFu9i_S_Us)
//============================================================================



static void Test_BFu9i_S_Vp()
{
  {
    init_simple_test("BFu9i_S_Vp");
    static STRUCT_IF_C BFu9i_S_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_S_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_S_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_S_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_S_Vp");
    check_field_offset(lv, v2, 2, "BFu9i_S_Vp.v2");
    check_field_offset(lv, v3, 4, "BFu9i_S_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_S_Vp, BFu9i_S_Vp)
//============================================================================



static void Test_BFu9i_Uc()
{
  {
    init_simple_test("BFu9i_Uc");
    static STRUCT_IF_C BFu9i_Uc lv;
    check2(sizeof(lv), 3, "sizeof(BFu9i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc");
    check_field_offset(lv, v2, 2, "BFu9i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc, BFu9i_Uc)
//============================================================================



static void Test_BFu9i_Uc_BFu15i()
{
  {
    init_simple_test("BFu9i_Uc_BFu15i");
    static STRUCT_IF_C BFu9i_Uc_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Uc_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu15i");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu15i.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9i_Uc_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9i_Uc_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu15i, BFu9i_Uc_BFu15i)
//============================================================================



static void Test_BFu9i_Uc_BFu15ll()
{
  {
    init_simple_test("BFu9i_Uc_BFu15ll");
    static STRUCT_IF_C BFu9i_Uc_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Uc_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu15ll");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu15ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9i_Uc_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9i_Uc_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu15ll, BFu9i_Uc_BFu15ll)
//============================================================================



static void Test_BFu9i_Uc_BFu15s()
{
  {
    init_simple_test("BFu9i_Uc_BFu15s");
    static STRUCT_IF_C BFu9i_Uc_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Uc_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu15s");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu15s.v2");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9i_Uc_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9i_Uc_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu15s, BFu9i_Uc_BFu15s)
//============================================================================



static void Test_BFu9i_Uc_BFu16i()
{
  {
    init_simple_test("BFu9i_Uc_BFu16i");
    static STRUCT_IF_C BFu9i_Uc_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Uc_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu16i");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu16i.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9i_Uc_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9i_Uc_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu16i, BFu9i_Uc_BFu16i)
//============================================================================



static void Test_BFu9i_Uc_BFu16ll()
{
  {
    init_simple_test("BFu9i_Uc_BFu16ll");
    static STRUCT_IF_C BFu9i_Uc_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Uc_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu16ll");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu16ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9i_Uc_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9i_Uc_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu16ll, BFu9i_Uc_BFu16ll)
//============================================================================



static void Test_BFu9i_Uc_BFu16s()
{
  {
    init_simple_test("BFu9i_Uc_BFu16s");
    static STRUCT_IF_C BFu9i_Uc_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Uc_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu16s");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu16s.v2");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9i_Uc_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9i_Uc_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu16s, BFu9i_Uc_BFu16s)
//============================================================================



static void Test_BFu9i_Uc_BFu17i()
{
  {
    init_simple_test("BFu9i_Uc_BFu17i");
    static STRUCT_IF_C BFu9i_Uc_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_Uc_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu17i");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu17i.v2");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu9i_Uc_BFu17i");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu9i_Uc_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu17i, BFu9i_Uc_BFu17i)
//============================================================================



static void Test_BFu9i_Uc_BFu17ll()
{
  {
    init_simple_test("BFu9i_Uc_BFu17ll");
    static STRUCT_IF_C BFu9i_Uc_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_Uc_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu17ll");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu17ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu9i_Uc_BFu17ll");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu9i_Uc_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu17ll, BFu9i_Uc_BFu17ll)
//============================================================================



static void Test_BFu9i_Uc_BFu1c()
{
  {
    init_simple_test("BFu9i_Uc_BFu1c");
    static STRUCT_IF_C BFu9i_Uc_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_Uc_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu1c");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu1c.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_Uc_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu1c, BFu9i_Uc_BFu1c)
//============================================================================



static void Test_BFu9i_Uc_BFu1i()
{
  {
    init_simple_test("BFu9i_Uc_BFu1i");
    static STRUCT_IF_C BFu9i_Uc_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_Uc_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu1i");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu1i.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_Uc_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu1i, BFu9i_Uc_BFu1i)
//============================================================================



static void Test_BFu9i_Uc_BFu1ll()
{
  {
    init_simple_test("BFu9i_Uc_BFu1ll");
    static STRUCT_IF_C BFu9i_Uc_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_Uc_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu1ll");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu1ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_Uc_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu1ll, BFu9i_Uc_BFu1ll)
//============================================================================



static void Test_BFu9i_Uc_BFu1s()
{
  {
    init_simple_test("BFu9i_Uc_BFu1s");
    static STRUCT_IF_C BFu9i_Uc_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_Uc_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu1s");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu1s.v2");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9i_Uc_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu1s, BFu9i_Uc_BFu1s)
//============================================================================



static void Test_BFu9i_Uc_BFu31i()
{
  {
    init_simple_test("BFu9i_Uc_BFu31i");
    static STRUCT_IF_C BFu9i_Uc_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Uc_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu31i");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu31i.v2");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu9i_Uc_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu9i_Uc_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu31i, BFu9i_Uc_BFu31i)
//============================================================================



static void Test_BFu9i_Uc_BFu31ll()
{
  {
    init_simple_test("BFu9i_Uc_BFu31ll");
    static STRUCT_IF_C BFu9i_Uc_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Uc_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu31ll");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu31ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu9i_Uc_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu9i_Uc_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu31ll, BFu9i_Uc_BFu31ll)
//============================================================================



static void Test_BFu9i_Uc_BFu32i()
{
  {
    init_simple_test("BFu9i_Uc_BFu32i");
    static STRUCT_IF_C BFu9i_Uc_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Uc_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu32i");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu32i.v2");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu9i_Uc_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu9i_Uc_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu32i, BFu9i_Uc_BFu32i)
//============================================================================



static void Test_BFu9i_Uc_BFu32ll()
{
  {
    init_simple_test("BFu9i_Uc_BFu32ll");
    static STRUCT_IF_C BFu9i_Uc_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Uc_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu32ll");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu32ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu9i_Uc_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu9i_Uc_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu32ll, BFu9i_Uc_BFu32ll)
//============================================================================



static void Test_BFu9i_Uc_BFu33()
{
  {
    init_simple_test("BFu9i_Uc_BFu33");
    static STRUCT_IF_C BFu9i_Uc_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Uc_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu33");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu33.v2");
    set_bf_and_test(lv, v3, 3, 0, 33, 1, "BFu9i_Uc_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, hide_ull(1LL<<32), "BFu9i_Uc_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu33, BFu9i_Uc_BFu33)
//============================================================================



static void Test_BFu9i_Uc_BFu7c()
{
  {
    init_simple_test("BFu9i_Uc_BFu7c");
    static STRUCT_IF_C BFu9i_Uc_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_Uc_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu7c");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu7c.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_Uc_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_Uc_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu7c, BFu9i_Uc_BFu7c)
//============================================================================



static void Test_BFu9i_Uc_BFu7i()
{
  {
    init_simple_test("BFu9i_Uc_BFu7i");
    static STRUCT_IF_C BFu9i_Uc_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_Uc_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu7i");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu7i.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_Uc_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_Uc_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu7i, BFu9i_Uc_BFu7i)
//============================================================================



static void Test_BFu9i_Uc_BFu7ll()
{
  {
    init_simple_test("BFu9i_Uc_BFu7ll");
    static STRUCT_IF_C BFu9i_Uc_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_Uc_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu7ll");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu7ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_Uc_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_Uc_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu7ll, BFu9i_Uc_BFu7ll)
//============================================================================



static void Test_BFu9i_Uc_BFu7s()
{
  {
    init_simple_test("BFu9i_Uc_BFu7s");
    static STRUCT_IF_C BFu9i_Uc_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_Uc_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu7s");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu7s.v2");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9i_Uc_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9i_Uc_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu7s, BFu9i_Uc_BFu7s)
//============================================================================



static void Test_BFu9i_Uc_BFu8c()
{
  {
    init_simple_test("BFu9i_Uc_BFu8c");
    static STRUCT_IF_C BFu9i_Uc_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_Uc_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu8c");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu8c.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_Uc_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_Uc_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu8c, BFu9i_Uc_BFu8c)
//============================================================================



static void Test_BFu9i_Uc_BFu8i()
{
  {
    init_simple_test("BFu9i_Uc_BFu8i");
    static STRUCT_IF_C BFu9i_Uc_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_Uc_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu8i");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu8i.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_Uc_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_Uc_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu8i, BFu9i_Uc_BFu8i)
//============================================================================



static void Test_BFu9i_Uc_BFu8ll()
{
  {
    init_simple_test("BFu9i_Uc_BFu8ll");
    static STRUCT_IF_C BFu9i_Uc_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_Uc_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu8ll");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu8ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_Uc_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_Uc_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu8ll, BFu9i_Uc_BFu8ll)
//============================================================================



static void Test_BFu9i_Uc_BFu8s()
{
  {
    init_simple_test("BFu9i_Uc_BFu8s");
    static STRUCT_IF_C BFu9i_Uc_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_Uc_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu8s");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu8s.v2");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9i_Uc_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9i_Uc_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu8s, BFu9i_Uc_BFu8s)
//============================================================================



static void Test_BFu9i_Uc_BFu9i()
{
  {
    init_simple_test("BFu9i_Uc_BFu9i");
    static STRUCT_IF_C BFu9i_Uc_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Uc_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu9i");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu9i.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9i_Uc_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu9i, BFu9i_Uc_BFu9i)
//============================================================================



static void Test_BFu9i_Uc_BFu9ll()
{
  {
    init_simple_test("BFu9i_Uc_BFu9ll");
    static STRUCT_IF_C BFu9i_Uc_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Uc_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu9ll");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu9ll.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9i_Uc_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu9ll, BFu9i_Uc_BFu9ll)
//============================================================================



static void Test_BFu9i_Uc_BFu9s()
{
  {
    init_simple_test("BFu9i_Uc_BFu9s");
    static STRUCT_IF_C BFu9i_Uc_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Uc_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu9s");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_BFu9s.v2");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9i_Uc_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_BFu9s, BFu9i_Uc_BFu9s)
//============================================================================



static void Test_BFu9i_Uc_C()
{
  {
    init_simple_test("BFu9i_Uc_C");
    static STRUCT_IF_C BFu9i_Uc_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_Uc_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_C");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_C.v2");
    check_field_offset(lv, v3, 3, "BFu9i_Uc_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_C, BFu9i_Uc_C)
//============================================================================



static void Test_BFu9i_Uc_D()
{
  {
    init_simple_test("BFu9i_Uc_D");
    static STRUCT_IF_C BFu9i_Uc_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Uc_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_D");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_D.v2");
    check_field_offset(lv, v3, 3, "BFu9i_Uc_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_D, BFu9i_Uc_D)
//============================================================================



static void Test_BFu9i_Uc_F()
{
  {
    init_simple_test("BFu9i_Uc_F");
    static STRUCT_IF_C BFu9i_Uc_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Uc_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_F");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_F.v2");
    check_field_offset(lv, v3, 3, "BFu9i_Uc_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_F, BFu9i_Uc_F)
//============================================================================



static void Test_BFu9i_Uc_I()
{
  {
    init_simple_test("BFu9i_Uc_I");
    static STRUCT_IF_C BFu9i_Uc_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Uc_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_I");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_I.v2");
    check_field_offset(lv, v3, 3, "BFu9i_Uc_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_I, BFu9i_Uc_I)
//============================================================================



static void Test_BFu9i_Uc_Ip()
{
  {
    init_simple_test("BFu9i_Uc_Ip");
    static STRUCT_IF_C BFu9i_Uc_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Uc_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_Ip");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_Ip.v2");
    check_field_offset(lv, v3, 3, "BFu9i_Uc_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_Ip, BFu9i_Uc_Ip)
//============================================================================



static void Test_BFu9i_Uc_L()
{
  {
    init_simple_test("BFu9i_Uc_L");
    static STRUCT_IF_C BFu9i_Uc_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Uc_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_L");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_L.v2");
    check_field_offset(lv, v3, 3, "BFu9i_Uc_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_L, BFu9i_Uc_L)
//============================================================================



static void Test_BFu9i_Uc_S()
{
  {
    init_simple_test("BFu9i_Uc_S");
    static STRUCT_IF_C BFu9i_Uc_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Uc_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_S");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_S.v2");
    check_field_offset(lv, v3, 3, "BFu9i_Uc_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_S, BFu9i_Uc_S)
//============================================================================



static void Test_BFu9i_Uc_Uc()
{
  {
    init_simple_test("BFu9i_Uc_Uc");
    static STRUCT_IF_C BFu9i_Uc_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_Uc_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_Uc");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_Uc.v2");
    check_field_offset(lv, v3, 3, "BFu9i_Uc_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_Uc, BFu9i_Uc_Uc)
//============================================================================



static void Test_BFu9i_Uc_Ui()
{
  {
    init_simple_test("BFu9i_Uc_Ui");
    static STRUCT_IF_C BFu9i_Uc_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Uc_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_Ui");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_Ui.v2");
    check_field_offset(lv, v3, 3, "BFu9i_Uc_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_Ui, BFu9i_Uc_Ui)
//============================================================================



static void Test_BFu9i_Uc_Ul()
{
  {
    init_simple_test("BFu9i_Uc_Ul");
    static STRUCT_IF_C BFu9i_Uc_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Uc_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_Ul");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_Ul.v2");
    check_field_offset(lv, v3, 3, "BFu9i_Uc_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_Ul, BFu9i_Uc_Ul)
//============================================================================



static void Test_BFu9i_Uc_Us()
{
  {
    init_simple_test("BFu9i_Uc_Us");
    static STRUCT_IF_C BFu9i_Uc_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Uc_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_Us");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_Us.v2");
    check_field_offset(lv, v3, 3, "BFu9i_Uc_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_Us, BFu9i_Uc_Us)
//============================================================================



static void Test_BFu9i_Uc_Vp()
{
  {
    init_simple_test("BFu9i_Uc_Vp");
    static STRUCT_IF_C BFu9i_Uc_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Uc_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Uc_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Uc_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Uc_Vp");
    check_field_offset(lv, v2, 2, "BFu9i_Uc_Vp.v2");
    check_field_offset(lv, v3, 3, "BFu9i_Uc_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Uc_Vp, BFu9i_Uc_Vp)
//============================================================================



static void Test_BFu9i_Ui()
{
  {
    init_simple_test("BFu9i_Ui");
    static STRUCT_IF_C BFu9i_Ui lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui");
    check_field_offset(lv, v2, 2, "BFu9i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui, BFu9i_Ui)
//============================================================================



static void Test_BFu9i_Ui_BFu15i()
{
  {
    init_simple_test("BFu9i_Ui_BFu15i");
    static STRUCT_IF_C BFu9i_Ui_BFu15i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Ui_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu15i");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu15i.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "BFu9i_Ui_BFu15i");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "BFu9i_Ui_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu15i, BFu9i_Ui_BFu15i)
//============================================================================



static void Test_BFu9i_Ui_BFu15ll()
{
  {
    init_simple_test("BFu9i_Ui_BFu15ll");
    static STRUCT_IF_C BFu9i_Ui_BFu15ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Ui_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu15ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu15ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "BFu9i_Ui_BFu15ll");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "BFu9i_Ui_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu15ll, BFu9i_Ui_BFu15ll)
//============================================================================



static void Test_BFu9i_Ui_BFu15s()
{
  {
    init_simple_test("BFu9i_Ui_BFu15s");
    static STRUCT_IF_C BFu9i_Ui_BFu15s lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Ui_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu15s");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu15s.v2");
    set_bf_and_test(lv, v3, 6, 0, 15, 1, "BFu9i_Ui_BFu15s");
    set_bf_and_test(lv, v3, 6, 0, 15, hide_ull(1LL<<14), "BFu9i_Ui_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu15s, BFu9i_Ui_BFu15s)
//============================================================================



static void Test_BFu9i_Ui_BFu16i()
{
  {
    init_simple_test("BFu9i_Ui_BFu16i");
    static STRUCT_IF_C BFu9i_Ui_BFu16i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Ui_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu16i");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu16i.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "BFu9i_Ui_BFu16i");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "BFu9i_Ui_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu16i, BFu9i_Ui_BFu16i)
//============================================================================



static void Test_BFu9i_Ui_BFu16ll()
{
  {
    init_simple_test("BFu9i_Ui_BFu16ll");
    static STRUCT_IF_C BFu9i_Ui_BFu16ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Ui_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu16ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu16ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "BFu9i_Ui_BFu16ll");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "BFu9i_Ui_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu16ll, BFu9i_Ui_BFu16ll)
//============================================================================



static void Test_BFu9i_Ui_BFu16s()
{
  {
    init_simple_test("BFu9i_Ui_BFu16s");
    static STRUCT_IF_C BFu9i_Ui_BFu16s lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Ui_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu16s");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu16s.v2");
    set_bf_and_test(lv, v3, 6, 0, 16, 1, "BFu9i_Ui_BFu16s");
    set_bf_and_test(lv, v3, 6, 0, 16, hide_ull(1LL<<15), "BFu9i_Ui_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu16s, BFu9i_Ui_BFu16s)
//============================================================================



static void Test_BFu9i_Ui_BFu17i()
{
  {
    init_simple_test("BFu9i_Ui_BFu17i");
    static STRUCT_IF_C BFu9i_Ui_BFu17i lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_Ui_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu17i");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu17i.v2");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "BFu9i_Ui_BFu17i");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "BFu9i_Ui_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu17i, BFu9i_Ui_BFu17i)
//============================================================================



static void Test_BFu9i_Ui_BFu17ll()
{
  {
    init_simple_test("BFu9i_Ui_BFu17ll");
    static STRUCT_IF_C BFu9i_Ui_BFu17ll lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_Ui_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu17ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu17ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 17, 1, "BFu9i_Ui_BFu17ll");
    set_bf_and_test(lv, v3, 6, 0, 17, hide_ull(1LL<<16), "BFu9i_Ui_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu17ll, BFu9i_Ui_BFu17ll)
//============================================================================



static void Test_BFu9i_Ui_BFu1c()
{
  {
    init_simple_test("BFu9i_Ui_BFu1c");
    static STRUCT_IF_C BFu9i_Ui_BFu1c lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Ui_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu1c");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu1c.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "BFu9i_Ui_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu1c, BFu9i_Ui_BFu1c)
//============================================================================



static void Test_BFu9i_Ui_BFu1i()
{
  {
    init_simple_test("BFu9i_Ui_BFu1i");
    static STRUCT_IF_C BFu9i_Ui_BFu1i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Ui_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu1i");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu1i.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "BFu9i_Ui_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu1i, BFu9i_Ui_BFu1i)
//============================================================================



static void Test_BFu9i_Ui_BFu1ll()
{
  {
    init_simple_test("BFu9i_Ui_BFu1ll");
    static STRUCT_IF_C BFu9i_Ui_BFu1ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Ui_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu1ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu1ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "BFu9i_Ui_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu1ll, BFu9i_Ui_BFu1ll)
//============================================================================



static void Test_BFu9i_Ui_BFu1s()
{
  {
    init_simple_test("BFu9i_Ui_BFu1s");
    static STRUCT_IF_C BFu9i_Ui_BFu1s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Ui_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu1s");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu1s.v2");
    set_bf_and_test(lv, v3, 6, 0, 1, 1, "BFu9i_Ui_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu1s, BFu9i_Ui_BFu1s)
//============================================================================



static void Test_BFu9i_Ui_BFu31i()
{
  {
    init_simple_test("BFu9i_Ui_BFu31i");
    static STRUCT_IF_C BFu9i_Ui_BFu31i lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_Ui_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu31i");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu31i.v2");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "BFu9i_Ui_BFu31i");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "BFu9i_Ui_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu31i, BFu9i_Ui_BFu31i)
//============================================================================



static void Test_BFu9i_Ui_BFu31ll()
{
  {
    init_simple_test("BFu9i_Ui_BFu31ll");
    static STRUCT_IF_C BFu9i_Ui_BFu31ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_Ui_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu31ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu31ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 31, 1, "BFu9i_Ui_BFu31ll");
    set_bf_and_test(lv, v3, 6, 0, 31, hide_ull(1LL<<30), "BFu9i_Ui_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu31ll, BFu9i_Ui_BFu31ll)
//============================================================================



static void Test_BFu9i_Ui_BFu32i()
{
  {
    init_simple_test("BFu9i_Ui_BFu32i");
    static STRUCT_IF_C BFu9i_Ui_BFu32i lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_Ui_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu32i");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu32i.v2");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "BFu9i_Ui_BFu32i");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "BFu9i_Ui_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu32i, BFu9i_Ui_BFu32i)
//============================================================================



static void Test_BFu9i_Ui_BFu32ll()
{
  {
    init_simple_test("BFu9i_Ui_BFu32ll");
    static STRUCT_IF_C BFu9i_Ui_BFu32ll lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_Ui_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu32ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu32ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 32, 1, "BFu9i_Ui_BFu32ll");
    set_bf_and_test(lv, v3, 6, 0, 32, hide_ull(1LL<<31), "BFu9i_Ui_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu32ll, BFu9i_Ui_BFu32ll)
//============================================================================



static void Test_BFu9i_Ui_BFu33()
{
  {
    init_simple_test("BFu9i_Ui_BFu33");
    static STRUCT_IF_C BFu9i_Ui_BFu33 lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Ui_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu33");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu33.v2");
    set_bf_and_test(lv, v3, 6, 0, 33, 1, "BFu9i_Ui_BFu33");
    set_bf_and_test(lv, v3, 6, 0, 33, hide_ull(1LL<<32), "BFu9i_Ui_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu33, BFu9i_Ui_BFu33)
//============================================================================



static void Test_BFu9i_Ui_BFu7c()
{
  {
    init_simple_test("BFu9i_Ui_BFu7c");
    static STRUCT_IF_C BFu9i_Ui_BFu7c lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Ui_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu7c");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu7c.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "BFu9i_Ui_BFu7c");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "BFu9i_Ui_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu7c, BFu9i_Ui_BFu7c)
//============================================================================



static void Test_BFu9i_Ui_BFu7i()
{
  {
    init_simple_test("BFu9i_Ui_BFu7i");
    static STRUCT_IF_C BFu9i_Ui_BFu7i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Ui_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu7i");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu7i.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "BFu9i_Ui_BFu7i");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "BFu9i_Ui_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu7i, BFu9i_Ui_BFu7i)
//============================================================================



static void Test_BFu9i_Ui_BFu7ll()
{
  {
    init_simple_test("BFu9i_Ui_BFu7ll");
    static STRUCT_IF_C BFu9i_Ui_BFu7ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Ui_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu7ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu7ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "BFu9i_Ui_BFu7ll");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "BFu9i_Ui_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu7ll, BFu9i_Ui_BFu7ll)
//============================================================================



static void Test_BFu9i_Ui_BFu7s()
{
  {
    init_simple_test("BFu9i_Ui_BFu7s");
    static STRUCT_IF_C BFu9i_Ui_BFu7s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Ui_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu7s");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu7s.v2");
    set_bf_and_test(lv, v3, 6, 0, 7, 1, "BFu9i_Ui_BFu7s");
    set_bf_and_test(lv, v3, 6, 0, 7, hide_ull(1LL<<6), "BFu9i_Ui_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu7s, BFu9i_Ui_BFu7s)
//============================================================================



static void Test_BFu9i_Ui_BFu8c()
{
  {
    init_simple_test("BFu9i_Ui_BFu8c");
    static STRUCT_IF_C BFu9i_Ui_BFu8c lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Ui_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu8c");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu8c.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "BFu9i_Ui_BFu8c");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "BFu9i_Ui_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu8c, BFu9i_Ui_BFu8c)
//============================================================================



static void Test_BFu9i_Ui_BFu8i()
{
  {
    init_simple_test("BFu9i_Ui_BFu8i");
    static STRUCT_IF_C BFu9i_Ui_BFu8i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Ui_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu8i");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu8i.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "BFu9i_Ui_BFu8i");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "BFu9i_Ui_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu8i, BFu9i_Ui_BFu8i)
//============================================================================



static void Test_BFu9i_Ui_BFu8ll()
{
  {
    init_simple_test("BFu9i_Ui_BFu8ll");
    static STRUCT_IF_C BFu9i_Ui_BFu8ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Ui_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu8ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu8ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "BFu9i_Ui_BFu8ll");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "BFu9i_Ui_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu8ll, BFu9i_Ui_BFu8ll)
//============================================================================



static void Test_BFu9i_Ui_BFu8s()
{
  {
    init_simple_test("BFu9i_Ui_BFu8s");
    static STRUCT_IF_C BFu9i_Ui_BFu8s lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Ui_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu8s");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu8s.v2");
    set_bf_and_test(lv, v3, 6, 0, 8, 1, "BFu9i_Ui_BFu8s");
    set_bf_and_test(lv, v3, 6, 0, 8, hide_ull(1LL<<7), "BFu9i_Ui_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu8s, BFu9i_Ui_BFu8s)
//============================================================================



static void Test_BFu9i_Ui_BFu9i()
{
  {
    init_simple_test("BFu9i_Ui_BFu9i");
    static STRUCT_IF_C BFu9i_Ui_BFu9i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Ui_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu9i");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu9i.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "BFu9i_Ui_BFu9i");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu9i, BFu9i_Ui_BFu9i)
//============================================================================



static void Test_BFu9i_Ui_BFu9ll()
{
  {
    init_simple_test("BFu9i_Ui_BFu9ll");
    static STRUCT_IF_C BFu9i_Ui_BFu9ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Ui_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu9ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu9ll.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "BFu9i_Ui_BFu9ll");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu9ll, BFu9i_Ui_BFu9ll)
//============================================================================



static void Test_BFu9i_Ui_BFu9s()
{
  {
    init_simple_test("BFu9i_Ui_BFu9s");
    static STRUCT_IF_C BFu9i_Ui_BFu9s lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Ui_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu9s");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_BFu9s.v2");
    set_bf_and_test(lv, v3, 6, 0, 9, 1, "BFu9i_Ui_BFu9s");
    set_bf_and_test(lv, v3, 6, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_BFu9s, BFu9i_Ui_BFu9s)
//============================================================================



static void Test_BFu9i_Ui_C()
{
  {
    init_simple_test("BFu9i_Ui_C");
    static STRUCT_IF_C BFu9i_Ui_C lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Ui_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_C");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_C.v2");
    check_field_offset(lv, v3, 6, "BFu9i_Ui_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_C, BFu9i_Ui_C)
//============================================================================



static void Test_BFu9i_Ui_D()
{
  {
    init_simple_test("BFu9i_Ui_D");
    static STRUCT_IF_C BFu9i_Ui_D lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_Ui_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_D");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_D.v2");
    check_field_offset(lv, v3, 6, "BFu9i_Ui_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_D, BFu9i_Ui_D)
//============================================================================



static void Test_BFu9i_Ui_F()
{
  {
    init_simple_test("BFu9i_Ui_F");
    static STRUCT_IF_C BFu9i_Ui_F lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_Ui_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_F");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_F.v2");
    check_field_offset(lv, v3, 6, "BFu9i_Ui_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_F, BFu9i_Ui_F)
//============================================================================



static void Test_BFu9i_Ui_I()
{
  {
    init_simple_test("BFu9i_Ui_I");
    static STRUCT_IF_C BFu9i_Ui_I lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_Ui_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_I");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_I.v2");
    check_field_offset(lv, v3, 6, "BFu9i_Ui_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_I, BFu9i_Ui_I)
//============================================================================



static void Test_BFu9i_Ui_Ip()
{
  {
    init_simple_test("BFu9i_Ui_Ip");
    static STRUCT_IF_C BFu9i_Ui_Ip lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_Ui_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_Ip");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_Ip.v2");
    check_field_offset(lv, v3, 6, "BFu9i_Ui_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_Ip, BFu9i_Ui_Ip)
//============================================================================



static void Test_BFu9i_Ui_L()
{
  {
    init_simple_test("BFu9i_Ui_L");
    static STRUCT_IF_C BFu9i_Ui_L lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_Ui_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_L");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_L.v2");
    check_field_offset(lv, v3, 6, "BFu9i_Ui_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_L, BFu9i_Ui_L)
//============================================================================



static void Test_BFu9i_Ui_S()
{
  {
    init_simple_test("BFu9i_Ui_S");
    static STRUCT_IF_C BFu9i_Ui_S lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Ui_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_S");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_S.v2");
    check_field_offset(lv, v3, 6, "BFu9i_Ui_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_S, BFu9i_Ui_S)
//============================================================================



static void Test_BFu9i_Ui_Uc()
{
  {
    init_simple_test("BFu9i_Ui_Uc");
    static STRUCT_IF_C BFu9i_Ui_Uc lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Ui_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_Uc");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_Uc.v2");
    check_field_offset(lv, v3, 6, "BFu9i_Ui_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_Uc, BFu9i_Ui_Uc)
//============================================================================



static void Test_BFu9i_Ui_Ui()
{
  {
    init_simple_test("BFu9i_Ui_Ui");
    static STRUCT_IF_C BFu9i_Ui_Ui lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_Ui_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_Ui");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_Ui.v2");
    check_field_offset(lv, v3, 6, "BFu9i_Ui_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_Ui, BFu9i_Ui_Ui)
//============================================================================



static void Test_BFu9i_Ui_Ul()
{
  {
    init_simple_test("BFu9i_Ui_Ul");
    static STRUCT_IF_C BFu9i_Ui_Ul lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_Ui_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_Ul");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_Ul.v2");
    check_field_offset(lv, v3, 6, "BFu9i_Ui_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_Ul, BFu9i_Ui_Ul)
//============================================================================



static void Test_BFu9i_Ui_Us()
{
  {
    init_simple_test("BFu9i_Ui_Us");
    static STRUCT_IF_C BFu9i_Ui_Us lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Ui_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_Us");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_Us.v2");
    check_field_offset(lv, v3, 6, "BFu9i_Ui_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_Us, BFu9i_Ui_Us)
//============================================================================



static void Test_BFu9i_Ui_Vp()
{
  {
    init_simple_test("BFu9i_Ui_Vp");
    static STRUCT_IF_C BFu9i_Ui_Vp lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_Ui_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ui_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ui_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ui_Vp");
    check_field_offset(lv, v2, 2, "BFu9i_Ui_Vp.v2");
    check_field_offset(lv, v3, 6, "BFu9i_Ui_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ui_Vp, BFu9i_Ui_Vp)
//============================================================================



static void Test_BFu9i_Ul()
{
  {
    init_simple_test("BFu9i_Ul");
    static STRUCT_IF_C BFu9i_Ul lv;
    check2(sizeof(lv), 10, "sizeof(BFu9i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul");
    check_field_offset(lv, v2, 2, "BFu9i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul, BFu9i_Ul)
//============================================================================



static void Test_BFu9i_Ul_BFu15i()
{
  {
    init_simple_test("BFu9i_Ul_BFu15i");
    static STRUCT_IF_C BFu9i_Ul_BFu15i lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_Ul_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu15i");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu15i.v2");
    set_bf_and_test(lv, v3, 10, 0, 15, 1, "BFu9i_Ul_BFu15i");
    set_bf_and_test(lv, v3, 10, 0, 15, hide_ull(1LL<<14), "BFu9i_Ul_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu15i, BFu9i_Ul_BFu15i)
//============================================================================



static void Test_BFu9i_Ul_BFu15ll()
{
  {
    init_simple_test("BFu9i_Ul_BFu15ll");
    static STRUCT_IF_C BFu9i_Ul_BFu15ll lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_Ul_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu15ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu15ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 15, 1, "BFu9i_Ul_BFu15ll");
    set_bf_and_test(lv, v3, 10, 0, 15, hide_ull(1LL<<14), "BFu9i_Ul_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu15ll, BFu9i_Ul_BFu15ll)
//============================================================================



static void Test_BFu9i_Ul_BFu15s()
{
  {
    init_simple_test("BFu9i_Ul_BFu15s");
    static STRUCT_IF_C BFu9i_Ul_BFu15s lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_Ul_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu15s");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu15s.v2");
    set_bf_and_test(lv, v3, 10, 0, 15, 1, "BFu9i_Ul_BFu15s");
    set_bf_and_test(lv, v3, 10, 0, 15, hide_ull(1LL<<14), "BFu9i_Ul_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu15s, BFu9i_Ul_BFu15s)
//============================================================================



static void Test_BFu9i_Ul_BFu16i()
{
  {
    init_simple_test("BFu9i_Ul_BFu16i");
    static STRUCT_IF_C BFu9i_Ul_BFu16i lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_Ul_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu16i");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu16i.v2");
    set_bf_and_test(lv, v3, 10, 0, 16, 1, "BFu9i_Ul_BFu16i");
    set_bf_and_test(lv, v3, 10, 0, 16, hide_ull(1LL<<15), "BFu9i_Ul_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu16i, BFu9i_Ul_BFu16i)
//============================================================================



static void Test_BFu9i_Ul_BFu16ll()
{
  {
    init_simple_test("BFu9i_Ul_BFu16ll");
    static STRUCT_IF_C BFu9i_Ul_BFu16ll lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_Ul_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu16ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu16ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 16, 1, "BFu9i_Ul_BFu16ll");
    set_bf_and_test(lv, v3, 10, 0, 16, hide_ull(1LL<<15), "BFu9i_Ul_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu16ll, BFu9i_Ul_BFu16ll)
//============================================================================



static void Test_BFu9i_Ul_BFu16s()
{
  {
    init_simple_test("BFu9i_Ul_BFu16s");
    static STRUCT_IF_C BFu9i_Ul_BFu16s lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_Ul_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu16s");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu16s.v2");
    set_bf_and_test(lv, v3, 10, 0, 16, 1, "BFu9i_Ul_BFu16s");
    set_bf_and_test(lv, v3, 10, 0, 16, hide_ull(1LL<<15), "BFu9i_Ul_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu16s, BFu9i_Ul_BFu16s)
//============================================================================



static void Test_BFu9i_Ul_BFu17i()
{
  {
    init_simple_test("BFu9i_Ul_BFu17i");
    static STRUCT_IF_C BFu9i_Ul_BFu17i lv;
    check2(sizeof(lv), 13, "sizeof(BFu9i_Ul_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu17i");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu17i.v2");
    set_bf_and_test(lv, v3, 10, 0, 17, 1, "BFu9i_Ul_BFu17i");
    set_bf_and_test(lv, v3, 10, 0, 17, hide_ull(1LL<<16), "BFu9i_Ul_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu17i, BFu9i_Ul_BFu17i)
//============================================================================



static void Test_BFu9i_Ul_BFu17ll()
{
  {
    init_simple_test("BFu9i_Ul_BFu17ll");
    static STRUCT_IF_C BFu9i_Ul_BFu17ll lv;
    check2(sizeof(lv), 13, "sizeof(BFu9i_Ul_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu17ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu17ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 17, 1, "BFu9i_Ul_BFu17ll");
    set_bf_and_test(lv, v3, 10, 0, 17, hide_ull(1LL<<16), "BFu9i_Ul_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu17ll, BFu9i_Ul_BFu17ll)
//============================================================================



static void Test_BFu9i_Ul_BFu1c()
{
  {
    init_simple_test("BFu9i_Ul_BFu1c");
    static STRUCT_IF_C BFu9i_Ul_BFu1c lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Ul_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu1c");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu1c.v2");
    set_bf_and_test(lv, v3, 10, 0, 1, 1, "BFu9i_Ul_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu1c, BFu9i_Ul_BFu1c)
//============================================================================



static void Test_BFu9i_Ul_BFu1i()
{
  {
    init_simple_test("BFu9i_Ul_BFu1i");
    static STRUCT_IF_C BFu9i_Ul_BFu1i lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Ul_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu1i");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu1i.v2");
    set_bf_and_test(lv, v3, 10, 0, 1, 1, "BFu9i_Ul_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu1i, BFu9i_Ul_BFu1i)
//============================================================================



static void Test_BFu9i_Ul_BFu1ll()
{
  {
    init_simple_test("BFu9i_Ul_BFu1ll");
    static STRUCT_IF_C BFu9i_Ul_BFu1ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Ul_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu1ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu1ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 1, 1, "BFu9i_Ul_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu1ll, BFu9i_Ul_BFu1ll)
//============================================================================



static void Test_BFu9i_Ul_BFu1s()
{
  {
    init_simple_test("BFu9i_Ul_BFu1s");
    static STRUCT_IF_C BFu9i_Ul_BFu1s lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Ul_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu1s");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu1s.v2");
    set_bf_and_test(lv, v3, 10, 0, 1, 1, "BFu9i_Ul_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu1s, BFu9i_Ul_BFu1s)
//============================================================================



static void Test_BFu9i_Ul_BFu31i()
{
  {
    init_simple_test("BFu9i_Ul_BFu31i");
    static STRUCT_IF_C BFu9i_Ul_BFu31i lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_Ul_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu31i");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu31i.v2");
    set_bf_and_test(lv, v3, 10, 0, 31, 1, "BFu9i_Ul_BFu31i");
    set_bf_and_test(lv, v3, 10, 0, 31, hide_ull(1LL<<30), "BFu9i_Ul_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu31i, BFu9i_Ul_BFu31i)
//============================================================================



static void Test_BFu9i_Ul_BFu31ll()
{
  {
    init_simple_test("BFu9i_Ul_BFu31ll");
    static STRUCT_IF_C BFu9i_Ul_BFu31ll lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_Ul_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu31ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu31ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 31, 1, "BFu9i_Ul_BFu31ll");
    set_bf_and_test(lv, v3, 10, 0, 31, hide_ull(1LL<<30), "BFu9i_Ul_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu31ll, BFu9i_Ul_BFu31ll)
//============================================================================



static void Test_BFu9i_Ul_BFu32i()
{
  {
    init_simple_test("BFu9i_Ul_BFu32i");
    static STRUCT_IF_C BFu9i_Ul_BFu32i lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_Ul_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu32i");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu32i.v2");
    set_bf_and_test(lv, v3, 10, 0, 32, 1, "BFu9i_Ul_BFu32i");
    set_bf_and_test(lv, v3, 10, 0, 32, hide_ull(1LL<<31), "BFu9i_Ul_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu32i, BFu9i_Ul_BFu32i)
//============================================================================



static void Test_BFu9i_Ul_BFu32ll()
{
  {
    init_simple_test("BFu9i_Ul_BFu32ll");
    static STRUCT_IF_C BFu9i_Ul_BFu32ll lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_Ul_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu32ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu32ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 32, 1, "BFu9i_Ul_BFu32ll");
    set_bf_and_test(lv, v3, 10, 0, 32, hide_ull(1LL<<31), "BFu9i_Ul_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu32ll, BFu9i_Ul_BFu32ll)
//============================================================================



static void Test_BFu9i_Ul_BFu33()
{
  {
    init_simple_test("BFu9i_Ul_BFu33");
    static STRUCT_IF_C BFu9i_Ul_BFu33 lv;
    check2(sizeof(lv), 15, "sizeof(BFu9i_Ul_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu33");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu33.v2");
    set_bf_and_test(lv, v3, 10, 0, 33, 1, "BFu9i_Ul_BFu33");
    set_bf_and_test(lv, v3, 10, 0, 33, hide_ull(1LL<<32), "BFu9i_Ul_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu33, BFu9i_Ul_BFu33)
//============================================================================



static void Test_BFu9i_Ul_BFu7c()
{
  {
    init_simple_test("BFu9i_Ul_BFu7c");
    static STRUCT_IF_C BFu9i_Ul_BFu7c lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Ul_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu7c");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu7c.v2");
    set_bf_and_test(lv, v3, 10, 0, 7, 1, "BFu9i_Ul_BFu7c");
    set_bf_and_test(lv, v3, 10, 0, 7, hide_ull(1LL<<6), "BFu9i_Ul_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu7c, BFu9i_Ul_BFu7c)
//============================================================================



static void Test_BFu9i_Ul_BFu7i()
{
  {
    init_simple_test("BFu9i_Ul_BFu7i");
    static STRUCT_IF_C BFu9i_Ul_BFu7i lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Ul_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu7i");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu7i.v2");
    set_bf_and_test(lv, v3, 10, 0, 7, 1, "BFu9i_Ul_BFu7i");
    set_bf_and_test(lv, v3, 10, 0, 7, hide_ull(1LL<<6), "BFu9i_Ul_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu7i, BFu9i_Ul_BFu7i)
//============================================================================



static void Test_BFu9i_Ul_BFu7ll()
{
  {
    init_simple_test("BFu9i_Ul_BFu7ll");
    static STRUCT_IF_C BFu9i_Ul_BFu7ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Ul_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu7ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu7ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 7, 1, "BFu9i_Ul_BFu7ll");
    set_bf_and_test(lv, v3, 10, 0, 7, hide_ull(1LL<<6), "BFu9i_Ul_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu7ll, BFu9i_Ul_BFu7ll)
//============================================================================



static void Test_BFu9i_Ul_BFu7s()
{
  {
    init_simple_test("BFu9i_Ul_BFu7s");
    static STRUCT_IF_C BFu9i_Ul_BFu7s lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Ul_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu7s");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu7s.v2");
    set_bf_and_test(lv, v3, 10, 0, 7, 1, "BFu9i_Ul_BFu7s");
    set_bf_and_test(lv, v3, 10, 0, 7, hide_ull(1LL<<6), "BFu9i_Ul_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu7s, BFu9i_Ul_BFu7s)
//============================================================================



static void Test_BFu9i_Ul_BFu8c()
{
  {
    init_simple_test("BFu9i_Ul_BFu8c");
    static STRUCT_IF_C BFu9i_Ul_BFu8c lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Ul_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu8c");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu8c.v2");
    set_bf_and_test(lv, v3, 10, 0, 8, 1, "BFu9i_Ul_BFu8c");
    set_bf_and_test(lv, v3, 10, 0, 8, hide_ull(1LL<<7), "BFu9i_Ul_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu8c, BFu9i_Ul_BFu8c)
//============================================================================



static void Test_BFu9i_Ul_BFu8i()
{
  {
    init_simple_test("BFu9i_Ul_BFu8i");
    static STRUCT_IF_C BFu9i_Ul_BFu8i lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Ul_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu8i");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu8i.v2");
    set_bf_and_test(lv, v3, 10, 0, 8, 1, "BFu9i_Ul_BFu8i");
    set_bf_and_test(lv, v3, 10, 0, 8, hide_ull(1LL<<7), "BFu9i_Ul_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu8i, BFu9i_Ul_BFu8i)
//============================================================================



static void Test_BFu9i_Ul_BFu8ll()
{
  {
    init_simple_test("BFu9i_Ul_BFu8ll");
    static STRUCT_IF_C BFu9i_Ul_BFu8ll lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Ul_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu8ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu8ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 8, 1, "BFu9i_Ul_BFu8ll");
    set_bf_and_test(lv, v3, 10, 0, 8, hide_ull(1LL<<7), "BFu9i_Ul_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu8ll, BFu9i_Ul_BFu8ll)
//============================================================================



static void Test_BFu9i_Ul_BFu8s()
{
  {
    init_simple_test("BFu9i_Ul_BFu8s");
    static STRUCT_IF_C BFu9i_Ul_BFu8s lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Ul_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu8s");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu8s.v2");
    set_bf_and_test(lv, v3, 10, 0, 8, 1, "BFu9i_Ul_BFu8s");
    set_bf_and_test(lv, v3, 10, 0, 8, hide_ull(1LL<<7), "BFu9i_Ul_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu8s, BFu9i_Ul_BFu8s)
//============================================================================



static void Test_BFu9i_Ul_BFu9i()
{
  {
    init_simple_test("BFu9i_Ul_BFu9i");
    static STRUCT_IF_C BFu9i_Ul_BFu9i lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_Ul_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu9i");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu9i.v2");
    set_bf_and_test(lv, v3, 10, 0, 9, 1, "BFu9i_Ul_BFu9i");
    set_bf_and_test(lv, v3, 10, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu9i, BFu9i_Ul_BFu9i)
//============================================================================



static void Test_BFu9i_Ul_BFu9ll()
{
  {
    init_simple_test("BFu9i_Ul_BFu9ll");
    static STRUCT_IF_C BFu9i_Ul_BFu9ll lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_Ul_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu9ll");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu9ll.v2");
    set_bf_and_test(lv, v3, 10, 0, 9, 1, "BFu9i_Ul_BFu9ll");
    set_bf_and_test(lv, v3, 10, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu9ll, BFu9i_Ul_BFu9ll)
//============================================================================



static void Test_BFu9i_Ul_BFu9s()
{
  {
    init_simple_test("BFu9i_Ul_BFu9s");
    static STRUCT_IF_C BFu9i_Ul_BFu9s lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_Ul_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu9s");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_BFu9s.v2");
    set_bf_and_test(lv, v3, 10, 0, 9, 1, "BFu9i_Ul_BFu9s");
    set_bf_and_test(lv, v3, 10, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_BFu9s, BFu9i_Ul_BFu9s)
//============================================================================



static void Test_BFu9i_Ul_C()
{
  {
    init_simple_test("BFu9i_Ul_C");
    static STRUCT_IF_C BFu9i_Ul_C lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Ul_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_C");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_C.v2");
    check_field_offset(lv, v3, 10, "BFu9i_Ul_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_C, BFu9i_Ul_C)
//============================================================================



static void Test_BFu9i_Ul_D()
{
  {
    init_simple_test("BFu9i_Ul_D");
    static STRUCT_IF_C BFu9i_Ul_D lv;
    check2(sizeof(lv), 18, "sizeof(BFu9i_Ul_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_D");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_D.v2");
    check_field_offset(lv, v3, 10, "BFu9i_Ul_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_D, BFu9i_Ul_D)
//============================================================================



static void Test_BFu9i_Ul_F()
{
  {
    init_simple_test("BFu9i_Ul_F");
    static STRUCT_IF_C BFu9i_Ul_F lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_Ul_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_F");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_F.v2");
    check_field_offset(lv, v3, 10, "BFu9i_Ul_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_F, BFu9i_Ul_F)
//============================================================================



static void Test_BFu9i_Ul_I()
{
  {
    init_simple_test("BFu9i_Ul_I");
    static STRUCT_IF_C BFu9i_Ul_I lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_Ul_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_I");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_I.v2");
    check_field_offset(lv, v3, 10, "BFu9i_Ul_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_I, BFu9i_Ul_I)
//============================================================================



static void Test_BFu9i_Ul_Ip()
{
  {
    init_simple_test("BFu9i_Ul_Ip");
    static STRUCT_IF_C BFu9i_Ul_Ip lv;
    check2(sizeof(lv), ABISELECT(18,14), "sizeof(BFu9i_Ul_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_Ip");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_Ip.v2");
    check_field_offset(lv, v3, 10, "BFu9i_Ul_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_Ip, BFu9i_Ul_Ip)
//============================================================================



static void Test_BFu9i_Ul_L()
{
  {
    init_simple_test("BFu9i_Ul_L");
    static STRUCT_IF_C BFu9i_Ul_L lv;
    check2(sizeof(lv), 18, "sizeof(BFu9i_Ul_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_L");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_L.v2");
    check_field_offset(lv, v3, 10, "BFu9i_Ul_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_L, BFu9i_Ul_L)
//============================================================================



static void Test_BFu9i_Ul_S()
{
  {
    init_simple_test("BFu9i_Ul_S");
    static STRUCT_IF_C BFu9i_Ul_S lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_Ul_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_S");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_S.v2");
    check_field_offset(lv, v3, 10, "BFu9i_Ul_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_S, BFu9i_Ul_S)
//============================================================================



static void Test_BFu9i_Ul_Uc()
{
  {
    init_simple_test("BFu9i_Ul_Uc");
    static STRUCT_IF_C BFu9i_Ul_Uc lv;
    check2(sizeof(lv), 11, "sizeof(BFu9i_Ul_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_Uc");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_Uc.v2");
    check_field_offset(lv, v3, 10, "BFu9i_Ul_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_Uc, BFu9i_Ul_Uc)
//============================================================================



static void Test_BFu9i_Ul_Ui()
{
  {
    init_simple_test("BFu9i_Ul_Ui");
    static STRUCT_IF_C BFu9i_Ul_Ui lv;
    check2(sizeof(lv), 14, "sizeof(BFu9i_Ul_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_Ui");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_Ui.v2");
    check_field_offset(lv, v3, 10, "BFu9i_Ul_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_Ui, BFu9i_Ul_Ui)
//============================================================================



static void Test_BFu9i_Ul_Ul()
{
  {
    init_simple_test("BFu9i_Ul_Ul");
    static STRUCT_IF_C BFu9i_Ul_Ul lv;
    check2(sizeof(lv), 18, "sizeof(BFu9i_Ul_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_Ul");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_Ul.v2");
    check_field_offset(lv, v3, 10, "BFu9i_Ul_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_Ul, BFu9i_Ul_Ul)
//============================================================================



static void Test_BFu9i_Ul_Us()
{
  {
    init_simple_test("BFu9i_Ul_Us");
    static STRUCT_IF_C BFu9i_Ul_Us lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_Ul_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_Us");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_Us.v2");
    check_field_offset(lv, v3, 10, "BFu9i_Ul_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_Us, BFu9i_Ul_Us)
//============================================================================



static void Test_BFu9i_Ul_Vp()
{
  {
    init_simple_test("BFu9i_Ul_Vp");
    static STRUCT_IF_C BFu9i_Ul_Vp lv;
    check2(sizeof(lv), ABISELECT(18,14), "sizeof(BFu9i_Ul_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Ul_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Ul_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Ul_Vp");
    check_field_offset(lv, v2, 2, "BFu9i_Ul_Vp.v2");
    check_field_offset(lv, v3, 10, "BFu9i_Ul_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Ul_Vp, BFu9i_Ul_Vp)
//============================================================================



static void Test_BFu9i_Us()
{
  {
    init_simple_test("BFu9i_Us");
    static STRUCT_IF_C BFu9i_Us lv;
    check2(sizeof(lv), 4, "sizeof(BFu9i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us");
    check_field_offset(lv, v2, 2, "BFu9i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us, BFu9i_Us)
//============================================================================



static void Test_BFu9i_Us_BFu15i()
{
  {
    init_simple_test("BFu9i_Us_BFu15i");
    static STRUCT_IF_C BFu9i_Us_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_Us_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu15i");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu15i.v2");
    set_bf_and_test(lv, v3, 4, 0, 15, 1, "BFu9i_Us_BFu15i");
    set_bf_and_test(lv, v3, 4, 0, 15, hide_ull(1LL<<14), "BFu9i_Us_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu15i, BFu9i_Us_BFu15i)
//============================================================================



static void Test_BFu9i_Us_BFu15ll()
{
  {
    init_simple_test("BFu9i_Us_BFu15ll");
    static STRUCT_IF_C BFu9i_Us_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_Us_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu15ll");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu15ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 15, 1, "BFu9i_Us_BFu15ll");
    set_bf_and_test(lv, v3, 4, 0, 15, hide_ull(1LL<<14), "BFu9i_Us_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu15ll, BFu9i_Us_BFu15ll)
//============================================================================



static void Test_BFu9i_Us_BFu15s()
{
  {
    init_simple_test("BFu9i_Us_BFu15s");
    static STRUCT_IF_C BFu9i_Us_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_Us_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu15s");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu15s.v2");
    set_bf_and_test(lv, v3, 4, 0, 15, 1, "BFu9i_Us_BFu15s");
    set_bf_and_test(lv, v3, 4, 0, 15, hide_ull(1LL<<14), "BFu9i_Us_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu15s, BFu9i_Us_BFu15s)
//============================================================================



static void Test_BFu9i_Us_BFu16i()
{
  {
    init_simple_test("BFu9i_Us_BFu16i");
    static STRUCT_IF_C BFu9i_Us_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_Us_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu16i");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu16i.v2");
    set_bf_and_test(lv, v3, 4, 0, 16, 1, "BFu9i_Us_BFu16i");
    set_bf_and_test(lv, v3, 4, 0, 16, hide_ull(1LL<<15), "BFu9i_Us_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu16i, BFu9i_Us_BFu16i)
//============================================================================



static void Test_BFu9i_Us_BFu16ll()
{
  {
    init_simple_test("BFu9i_Us_BFu16ll");
    static STRUCT_IF_C BFu9i_Us_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_Us_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu16ll");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu16ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 16, 1, "BFu9i_Us_BFu16ll");
    set_bf_and_test(lv, v3, 4, 0, 16, hide_ull(1LL<<15), "BFu9i_Us_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu16ll, BFu9i_Us_BFu16ll)
//============================================================================



static void Test_BFu9i_Us_BFu16s()
{
  {
    init_simple_test("BFu9i_Us_BFu16s");
    static STRUCT_IF_C BFu9i_Us_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_Us_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu16s");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu16s.v2");
    set_bf_and_test(lv, v3, 4, 0, 16, 1, "BFu9i_Us_BFu16s");
    set_bf_and_test(lv, v3, 4, 0, 16, hide_ull(1LL<<15), "BFu9i_Us_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu16s, BFu9i_Us_BFu16s)
//============================================================================



static void Test_BFu9i_Us_BFu17i()
{
  {
    init_simple_test("BFu9i_Us_BFu17i");
    static STRUCT_IF_C BFu9i_Us_BFu17i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Us_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu17i");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu17i.v2");
    set_bf_and_test(lv, v3, 4, 0, 17, 1, "BFu9i_Us_BFu17i");
    set_bf_and_test(lv, v3, 4, 0, 17, hide_ull(1LL<<16), "BFu9i_Us_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu17i, BFu9i_Us_BFu17i)
//============================================================================



static void Test_BFu9i_Us_BFu17ll()
{
  {
    init_simple_test("BFu9i_Us_BFu17ll");
    static STRUCT_IF_C BFu9i_Us_BFu17ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9i_Us_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu17ll");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu17ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 17, 1, "BFu9i_Us_BFu17ll");
    set_bf_and_test(lv, v3, 4, 0, 17, hide_ull(1LL<<16), "BFu9i_Us_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu17ll, BFu9i_Us_BFu17ll)
//============================================================================



static void Test_BFu9i_Us_BFu1c()
{
  {
    init_simple_test("BFu9i_Us_BFu1c");
    static STRUCT_IF_C BFu9i_Us_BFu1c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Us_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu1c");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu1c.v2");
    set_bf_and_test(lv, v3, 4, 0, 1, 1, "BFu9i_Us_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu1c, BFu9i_Us_BFu1c)
//============================================================================



static void Test_BFu9i_Us_BFu1i()
{
  {
    init_simple_test("BFu9i_Us_BFu1i");
    static STRUCT_IF_C BFu9i_Us_BFu1i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Us_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu1i");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu1i.v2");
    set_bf_and_test(lv, v3, 4, 0, 1, 1, "BFu9i_Us_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu1i, BFu9i_Us_BFu1i)
//============================================================================



static void Test_BFu9i_Us_BFu1ll()
{
  {
    init_simple_test("BFu9i_Us_BFu1ll");
    static STRUCT_IF_C BFu9i_Us_BFu1ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Us_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu1ll");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu1ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 1, 1, "BFu9i_Us_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu1ll, BFu9i_Us_BFu1ll)
//============================================================================



static void Test_BFu9i_Us_BFu1s()
{
  {
    init_simple_test("BFu9i_Us_BFu1s");
    static STRUCT_IF_C BFu9i_Us_BFu1s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Us_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu1s");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu1s.v2");
    set_bf_and_test(lv, v3, 4, 0, 1, 1, "BFu9i_Us_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu1s, BFu9i_Us_BFu1s)
//============================================================================



static void Test_BFu9i_Us_BFu31i()
{
  {
    init_simple_test("BFu9i_Us_BFu31i");
    static STRUCT_IF_C BFu9i_Us_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Us_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu31i");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu31i.v2");
    set_bf_and_test(lv, v3, 4, 0, 31, 1, "BFu9i_Us_BFu31i");
    set_bf_and_test(lv, v3, 4, 0, 31, hide_ull(1LL<<30), "BFu9i_Us_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu31i, BFu9i_Us_BFu31i)
//============================================================================



static void Test_BFu9i_Us_BFu31ll()
{
  {
    init_simple_test("BFu9i_Us_BFu31ll");
    static STRUCT_IF_C BFu9i_Us_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Us_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu31ll");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu31ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 31, 1, "BFu9i_Us_BFu31ll");
    set_bf_and_test(lv, v3, 4, 0, 31, hide_ull(1LL<<30), "BFu9i_Us_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu31ll, BFu9i_Us_BFu31ll)
//============================================================================



static void Test_BFu9i_Us_BFu32i()
{
  {
    init_simple_test("BFu9i_Us_BFu32i");
    static STRUCT_IF_C BFu9i_Us_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Us_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu32i");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu32i.v2");
    set_bf_and_test(lv, v3, 4, 0, 32, 1, "BFu9i_Us_BFu32i");
    set_bf_and_test(lv, v3, 4, 0, 32, hide_ull(1LL<<31), "BFu9i_Us_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu32i, BFu9i_Us_BFu32i)
//============================================================================



static void Test_BFu9i_Us_BFu32ll()
{
  {
    init_simple_test("BFu9i_Us_BFu32ll");
    static STRUCT_IF_C BFu9i_Us_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Us_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu32ll");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu32ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 32, 1, "BFu9i_Us_BFu32ll");
    set_bf_and_test(lv, v3, 4, 0, 32, hide_ull(1LL<<31), "BFu9i_Us_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu32ll, BFu9i_Us_BFu32ll)
//============================================================================



static void Test_BFu9i_Us_BFu33()
{
  {
    init_simple_test("BFu9i_Us_BFu33");
    static STRUCT_IF_C BFu9i_Us_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(BFu9i_Us_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu33");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu33.v2");
    set_bf_and_test(lv, v3, 4, 0, 33, 1, "BFu9i_Us_BFu33");
    set_bf_and_test(lv, v3, 4, 0, 33, hide_ull(1LL<<32), "BFu9i_Us_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu33, BFu9i_Us_BFu33)
//============================================================================



static void Test_BFu9i_Us_BFu7c()
{
  {
    init_simple_test("BFu9i_Us_BFu7c");
    static STRUCT_IF_C BFu9i_Us_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Us_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu7c");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu7c.v2");
    set_bf_and_test(lv, v3, 4, 0, 7, 1, "BFu9i_Us_BFu7c");
    set_bf_and_test(lv, v3, 4, 0, 7, hide_ull(1LL<<6), "BFu9i_Us_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu7c, BFu9i_Us_BFu7c)
//============================================================================



static void Test_BFu9i_Us_BFu7i()
{
  {
    init_simple_test("BFu9i_Us_BFu7i");
    static STRUCT_IF_C BFu9i_Us_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Us_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu7i");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu7i.v2");
    set_bf_and_test(lv, v3, 4, 0, 7, 1, "BFu9i_Us_BFu7i");
    set_bf_and_test(lv, v3, 4, 0, 7, hide_ull(1LL<<6), "BFu9i_Us_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu7i, BFu9i_Us_BFu7i)
//============================================================================



static void Test_BFu9i_Us_BFu7ll()
{
  {
    init_simple_test("BFu9i_Us_BFu7ll");
    static STRUCT_IF_C BFu9i_Us_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Us_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu7ll");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu7ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 7, 1, "BFu9i_Us_BFu7ll");
    set_bf_and_test(lv, v3, 4, 0, 7, hide_ull(1LL<<6), "BFu9i_Us_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu7ll, BFu9i_Us_BFu7ll)
//============================================================================



static void Test_BFu9i_Us_BFu7s()
{
  {
    init_simple_test("BFu9i_Us_BFu7s");
    static STRUCT_IF_C BFu9i_Us_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Us_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu7s");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu7s.v2");
    set_bf_and_test(lv, v3, 4, 0, 7, 1, "BFu9i_Us_BFu7s");
    set_bf_and_test(lv, v3, 4, 0, 7, hide_ull(1LL<<6), "BFu9i_Us_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu7s, BFu9i_Us_BFu7s)
//============================================================================



static void Test_BFu9i_Us_BFu8c()
{
  {
    init_simple_test("BFu9i_Us_BFu8c");
    static STRUCT_IF_C BFu9i_Us_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Us_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu8c");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu8c.v2");
    set_bf_and_test(lv, v3, 4, 0, 8, 1, "BFu9i_Us_BFu8c");
    set_bf_and_test(lv, v3, 4, 0, 8, hide_ull(1LL<<7), "BFu9i_Us_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu8c, BFu9i_Us_BFu8c)
//============================================================================



static void Test_BFu9i_Us_BFu8i()
{
  {
    init_simple_test("BFu9i_Us_BFu8i");
    static STRUCT_IF_C BFu9i_Us_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Us_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu8i");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu8i.v2");
    set_bf_and_test(lv, v3, 4, 0, 8, 1, "BFu9i_Us_BFu8i");
    set_bf_and_test(lv, v3, 4, 0, 8, hide_ull(1LL<<7), "BFu9i_Us_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu8i, BFu9i_Us_BFu8i)
//============================================================================



static void Test_BFu9i_Us_BFu8ll()
{
  {
    init_simple_test("BFu9i_Us_BFu8ll");
    static STRUCT_IF_C BFu9i_Us_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Us_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu8ll");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu8ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 8, 1, "BFu9i_Us_BFu8ll");
    set_bf_and_test(lv, v3, 4, 0, 8, hide_ull(1LL<<7), "BFu9i_Us_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu8ll, BFu9i_Us_BFu8ll)
//============================================================================



static void Test_BFu9i_Us_BFu8s()
{
  {
    init_simple_test("BFu9i_Us_BFu8s");
    static STRUCT_IF_C BFu9i_Us_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Us_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu8s");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu8s.v2");
    set_bf_and_test(lv, v3, 4, 0, 8, 1, "BFu9i_Us_BFu8s");
    set_bf_and_test(lv, v3, 4, 0, 8, hide_ull(1LL<<7), "BFu9i_Us_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu8s, BFu9i_Us_BFu8s)
//============================================================================



static void Test_BFu9i_Us_BFu9i()
{
  {
    init_simple_test("BFu9i_Us_BFu9i");
    static STRUCT_IF_C BFu9i_Us_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_Us_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu9i");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu9i.v2");
    set_bf_and_test(lv, v3, 4, 0, 9, 1, "BFu9i_Us_BFu9i");
    set_bf_and_test(lv, v3, 4, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu9i, BFu9i_Us_BFu9i)
//============================================================================



static void Test_BFu9i_Us_BFu9ll()
{
  {
    init_simple_test("BFu9i_Us_BFu9ll");
    static STRUCT_IF_C BFu9i_Us_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_Us_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu9ll");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu9ll.v2");
    set_bf_and_test(lv, v3, 4, 0, 9, 1, "BFu9i_Us_BFu9ll");
    set_bf_and_test(lv, v3, 4, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu9ll, BFu9i_Us_BFu9ll)
//============================================================================



static void Test_BFu9i_Us_BFu9s()
{
  {
    init_simple_test("BFu9i_Us_BFu9s");
    static STRUCT_IF_C BFu9i_Us_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_Us_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu9s");
    check_field_offset(lv, v2, 2, "BFu9i_Us_BFu9s.v2");
    set_bf_and_test(lv, v3, 4, 0, 9, 1, "BFu9i_Us_BFu9s");
    set_bf_and_test(lv, v3, 4, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_BFu9s, BFu9i_Us_BFu9s)
//============================================================================



static void Test_BFu9i_Us_C()
{
  {
    init_simple_test("BFu9i_Us_C");
    static STRUCT_IF_C BFu9i_Us_C lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Us_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_C");
    check_field_offset(lv, v2, 2, "BFu9i_Us_C.v2");
    check_field_offset(lv, v3, 4, "BFu9i_Us_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_C, BFu9i_Us_C)
//============================================================================



static void Test_BFu9i_Us_D()
{
  {
    init_simple_test("BFu9i_Us_D");
    static STRUCT_IF_C BFu9i_Us_D lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_Us_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_D");
    check_field_offset(lv, v2, 2, "BFu9i_Us_D.v2");
    check_field_offset(lv, v3, 4, "BFu9i_Us_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_D, BFu9i_Us_D)
//============================================================================



static void Test_BFu9i_Us_F()
{
  {
    init_simple_test("BFu9i_Us_F");
    static STRUCT_IF_C BFu9i_Us_F lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Us_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_F");
    check_field_offset(lv, v2, 2, "BFu9i_Us_F.v2");
    check_field_offset(lv, v3, 4, "BFu9i_Us_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_F, BFu9i_Us_F)
//============================================================================



static void Test_BFu9i_Us_I()
{
  {
    init_simple_test("BFu9i_Us_I");
    static STRUCT_IF_C BFu9i_Us_I lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Us_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_I");
    check_field_offset(lv, v2, 2, "BFu9i_Us_I.v2");
    check_field_offset(lv, v3, 4, "BFu9i_Us_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_I, BFu9i_Us_I)
//============================================================================



static void Test_BFu9i_Us_Ip()
{
  {
    init_simple_test("BFu9i_Us_Ip");
    static STRUCT_IF_C BFu9i_Us_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Us_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_Ip");
    check_field_offset(lv, v2, 2, "BFu9i_Us_Ip.v2");
    check_field_offset(lv, v3, 4, "BFu9i_Us_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_Ip, BFu9i_Us_Ip)
//============================================================================



static void Test_BFu9i_Us_L()
{
  {
    init_simple_test("BFu9i_Us_L");
    static STRUCT_IF_C BFu9i_Us_L lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_Us_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_L");
    check_field_offset(lv, v2, 2, "BFu9i_Us_L.v2");
    check_field_offset(lv, v3, 4, "BFu9i_Us_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_L, BFu9i_Us_L)
//============================================================================



static void Test_BFu9i_Us_S()
{
  {
    init_simple_test("BFu9i_Us_S");
    static STRUCT_IF_C BFu9i_Us_S lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_Us_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_S");
    check_field_offset(lv, v2, 2, "BFu9i_Us_S.v2");
    check_field_offset(lv, v3, 4, "BFu9i_Us_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_S, BFu9i_Us_S)
//============================================================================



static void Test_BFu9i_Us_Uc()
{
  {
    init_simple_test("BFu9i_Us_Uc");
    static STRUCT_IF_C BFu9i_Us_Uc lv;
    check2(sizeof(lv), 5, "sizeof(BFu9i_Us_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_Uc");
    check_field_offset(lv, v2, 2, "BFu9i_Us_Uc.v2");
    check_field_offset(lv, v3, 4, "BFu9i_Us_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_Uc, BFu9i_Us_Uc)
//============================================================================



static void Test_BFu9i_Us_Ui()
{
  {
    init_simple_test("BFu9i_Us_Ui");
    static STRUCT_IF_C BFu9i_Us_Ui lv;
    check2(sizeof(lv), 8, "sizeof(BFu9i_Us_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_Ui");
    check_field_offset(lv, v2, 2, "BFu9i_Us_Ui.v2");
    check_field_offset(lv, v3, 4, "BFu9i_Us_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_Ui, BFu9i_Us_Ui)
//============================================================================



static void Test_BFu9i_Us_Ul()
{
  {
    init_simple_test("BFu9i_Us_Ul");
    static STRUCT_IF_C BFu9i_Us_Ul lv;
    check2(sizeof(lv), 12, "sizeof(BFu9i_Us_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_Ul");
    check_field_offset(lv, v2, 2, "BFu9i_Us_Ul.v2");
    check_field_offset(lv, v3, 4, "BFu9i_Us_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_Ul, BFu9i_Us_Ul)
//============================================================================



static void Test_BFu9i_Us_Us()
{
  {
    init_simple_test("BFu9i_Us_Us");
    static STRUCT_IF_C BFu9i_Us_Us lv;
    check2(sizeof(lv), 6, "sizeof(BFu9i_Us_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_Us");
    check_field_offset(lv, v2, 2, "BFu9i_Us_Us.v2");
    check_field_offset(lv, v3, 4, "BFu9i_Us_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_Us, BFu9i_Us_Us)
//============================================================================



static void Test_BFu9i_Us_Vp()
{
  {
    init_simple_test("BFu9i_Us_Vp");
    static STRUCT_IF_C BFu9i_Us_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Us_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Us_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Us_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Us_Vp");
    check_field_offset(lv, v2, 2, "BFu9i_Us_Vp.v2");
    check_field_offset(lv, v3, 4, "BFu9i_Us_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Us_Vp, BFu9i_Us_Vp)
//============================================================================



static void Test_BFu9i_Vp()
{
  {
    init_simple_test("BFu9i_Vp");
    static STRUCT_IF_C BFu9i_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(BFu9i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp");
    check_field_offset(lv, v2, 2, "BFu9i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp, BFu9i_Vp)
//============================================================================



static void Test_BFu9i_Vp_BFu15i()
{
  {
    init_simple_test("BFu9i_Vp_BFu15i");
    static STRUCT_IF_C BFu9i_Vp_BFu15i lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Vp_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu15i");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu15i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 15, 1, "BFu9i_Vp_BFu15i");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 15, hide_ull(1LL<<14), "BFu9i_Vp_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu15i, BFu9i_Vp_BFu15i)
//============================================================================



static void Test_BFu9i_Vp_BFu15ll()
{
  {
    init_simple_test("BFu9i_Vp_BFu15ll");
    static STRUCT_IF_C BFu9i_Vp_BFu15ll lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Vp_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu15ll");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu15ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 15, 1, "BFu9i_Vp_BFu15ll");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 15, hide_ull(1LL<<14), "BFu9i_Vp_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu15ll, BFu9i_Vp_BFu15ll)
//============================================================================



static void Test_BFu9i_Vp_BFu15s()
{
  {
    init_simple_test("BFu9i_Vp_BFu15s");
    static STRUCT_IF_C BFu9i_Vp_BFu15s lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Vp_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu15s");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu15s.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 15, 1, "BFu9i_Vp_BFu15s");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 15, hide_ull(1LL<<14), "BFu9i_Vp_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu15s, BFu9i_Vp_BFu15s)
//============================================================================



static void Test_BFu9i_Vp_BFu16i()
{
  {
    init_simple_test("BFu9i_Vp_BFu16i");
    static STRUCT_IF_C BFu9i_Vp_BFu16i lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Vp_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu16i");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu16i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 16, 1, "BFu9i_Vp_BFu16i");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 16, hide_ull(1LL<<15), "BFu9i_Vp_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu16i, BFu9i_Vp_BFu16i)
//============================================================================



static void Test_BFu9i_Vp_BFu16ll()
{
  {
    init_simple_test("BFu9i_Vp_BFu16ll");
    static STRUCT_IF_C BFu9i_Vp_BFu16ll lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Vp_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu16ll");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu16ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 16, 1, "BFu9i_Vp_BFu16ll");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 16, hide_ull(1LL<<15), "BFu9i_Vp_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu16ll, BFu9i_Vp_BFu16ll)
//============================================================================



static void Test_BFu9i_Vp_BFu16s()
{
  {
    init_simple_test("BFu9i_Vp_BFu16s");
    static STRUCT_IF_C BFu9i_Vp_BFu16s lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Vp_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu16s");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu16s.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 16, 1, "BFu9i_Vp_BFu16s");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 16, hide_ull(1LL<<15), "BFu9i_Vp_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu16s, BFu9i_Vp_BFu16s)
//============================================================================



static void Test_BFu9i_Vp_BFu17i()
{
  {
    init_simple_test("BFu9i_Vp_BFu17i");
    static STRUCT_IF_C BFu9i_Vp_BFu17i lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu9i_Vp_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu17i");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu17i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 17, 1, "BFu9i_Vp_BFu17i");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 17, hide_ull(1LL<<16), "BFu9i_Vp_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu17i, BFu9i_Vp_BFu17i)
//============================================================================



static void Test_BFu9i_Vp_BFu17ll()
{
  {
    init_simple_test("BFu9i_Vp_BFu17ll");
    static STRUCT_IF_C BFu9i_Vp_BFu17ll lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(BFu9i_Vp_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu17ll");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu17ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 17, 1, "BFu9i_Vp_BFu17ll");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 17, hide_ull(1LL<<16), "BFu9i_Vp_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu17ll, BFu9i_Vp_BFu17ll)
//============================================================================



static void Test_BFu9i_Vp_BFu1c()
{
  {
    init_simple_test("BFu9i_Vp_BFu1c");
    static STRUCT_IF_C BFu9i_Vp_BFu1c lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Vp_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu1c");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu1c.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 1, 1, "BFu9i_Vp_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu1c, BFu9i_Vp_BFu1c)
//============================================================================



static void Test_BFu9i_Vp_BFu1i()
{
  {
    init_simple_test("BFu9i_Vp_BFu1i");
    static STRUCT_IF_C BFu9i_Vp_BFu1i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Vp_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu1i");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu1i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 1, 1, "BFu9i_Vp_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu1i, BFu9i_Vp_BFu1i)
//============================================================================



static void Test_BFu9i_Vp_BFu1ll()
{
  {
    init_simple_test("BFu9i_Vp_BFu1ll");
    static STRUCT_IF_C BFu9i_Vp_BFu1ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Vp_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu1ll");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu1ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 1, 1, "BFu9i_Vp_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu1ll, BFu9i_Vp_BFu1ll)
//============================================================================



static void Test_BFu9i_Vp_BFu1s()
{
  {
    init_simple_test("BFu9i_Vp_BFu1s");
    static STRUCT_IF_C BFu9i_Vp_BFu1s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Vp_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu1s");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu1s.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 1, 1, "BFu9i_Vp_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu1s, BFu9i_Vp_BFu1s)
//============================================================================



static void Test_BFu9i_Vp_BFu31i()
{
  {
    init_simple_test("BFu9i_Vp_BFu31i");
    static STRUCT_IF_C BFu9i_Vp_BFu31i lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_Vp_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu31i");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu31i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 31, 1, "BFu9i_Vp_BFu31i");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 31, hide_ull(1LL<<30), "BFu9i_Vp_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu31i, BFu9i_Vp_BFu31i)
//============================================================================



static void Test_BFu9i_Vp_BFu31ll()
{
  {
    init_simple_test("BFu9i_Vp_BFu31ll");
    static STRUCT_IF_C BFu9i_Vp_BFu31ll lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_Vp_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu31ll");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu31ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 31, 1, "BFu9i_Vp_BFu31ll");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 31, hide_ull(1LL<<30), "BFu9i_Vp_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu31ll, BFu9i_Vp_BFu31ll)
//============================================================================



static void Test_BFu9i_Vp_BFu32i()
{
  {
    init_simple_test("BFu9i_Vp_BFu32i");
    static STRUCT_IF_C BFu9i_Vp_BFu32i lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_Vp_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu32i");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu32i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 32, 1, "BFu9i_Vp_BFu32i");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 32, hide_ull(1LL<<31), "BFu9i_Vp_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu32i, BFu9i_Vp_BFu32i)
//============================================================================



static void Test_BFu9i_Vp_BFu32ll()
{
  {
    init_simple_test("BFu9i_Vp_BFu32ll");
    static STRUCT_IF_C BFu9i_Vp_BFu32ll lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_Vp_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu32ll");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu32ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 32, 1, "BFu9i_Vp_BFu32ll");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 32, hide_ull(1LL<<31), "BFu9i_Vp_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu32ll, BFu9i_Vp_BFu32ll)
//============================================================================



static void Test_BFu9i_Vp_BFu33()
{
  {
    init_simple_test("BFu9i_Vp_BFu33");
    static STRUCT_IF_C BFu9i_Vp_BFu33 lv;
    check2(sizeof(lv), ABISELECT(15,11), "sizeof(BFu9i_Vp_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu33");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu33.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 33, 1, "BFu9i_Vp_BFu33");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 33, hide_ull(1LL<<32), "BFu9i_Vp_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu33, BFu9i_Vp_BFu33)
//============================================================================



static void Test_BFu9i_Vp_BFu7c()
{
  {
    init_simple_test("BFu9i_Vp_BFu7c");
    static STRUCT_IF_C BFu9i_Vp_BFu7c lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Vp_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu7c");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu7c.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 7, 1, "BFu9i_Vp_BFu7c");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 7, hide_ull(1LL<<6), "BFu9i_Vp_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu7c, BFu9i_Vp_BFu7c)
//============================================================================



static void Test_BFu9i_Vp_BFu7i()
{
  {
    init_simple_test("BFu9i_Vp_BFu7i");
    static STRUCT_IF_C BFu9i_Vp_BFu7i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Vp_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu7i");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu7i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 7, 1, "BFu9i_Vp_BFu7i");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 7, hide_ull(1LL<<6), "BFu9i_Vp_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu7i, BFu9i_Vp_BFu7i)
//============================================================================



static void Test_BFu9i_Vp_BFu7ll()
{
  {
    init_simple_test("BFu9i_Vp_BFu7ll");
    static STRUCT_IF_C BFu9i_Vp_BFu7ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Vp_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu7ll");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu7ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 7, 1, "BFu9i_Vp_BFu7ll");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 7, hide_ull(1LL<<6), "BFu9i_Vp_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu7ll, BFu9i_Vp_BFu7ll)
//============================================================================



static void Test_BFu9i_Vp_BFu7s()
{
  {
    init_simple_test("BFu9i_Vp_BFu7s");
    static STRUCT_IF_C BFu9i_Vp_BFu7s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Vp_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu7s");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu7s.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 7, 1, "BFu9i_Vp_BFu7s");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 7, hide_ull(1LL<<6), "BFu9i_Vp_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu7s, BFu9i_Vp_BFu7s)
//============================================================================



static void Test_BFu9i_Vp_BFu8c()
{
  {
    init_simple_test("BFu9i_Vp_BFu8c");
    static STRUCT_IF_C BFu9i_Vp_BFu8c lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Vp_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu8c");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu8c.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 8, 1, "BFu9i_Vp_BFu8c");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 8, hide_ull(1LL<<7), "BFu9i_Vp_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu8c, BFu9i_Vp_BFu8c)
//============================================================================



static void Test_BFu9i_Vp_BFu8i()
{
  {
    init_simple_test("BFu9i_Vp_BFu8i");
    static STRUCT_IF_C BFu9i_Vp_BFu8i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Vp_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu8i");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu8i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 8, 1, "BFu9i_Vp_BFu8i");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 8, hide_ull(1LL<<7), "BFu9i_Vp_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu8i, BFu9i_Vp_BFu8i)
//============================================================================



static void Test_BFu9i_Vp_BFu8ll()
{
  {
    init_simple_test("BFu9i_Vp_BFu8ll");
    static STRUCT_IF_C BFu9i_Vp_BFu8ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Vp_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu8ll");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu8ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 8, 1, "BFu9i_Vp_BFu8ll");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 8, hide_ull(1LL<<7), "BFu9i_Vp_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu8ll, BFu9i_Vp_BFu8ll)
//============================================================================



static void Test_BFu9i_Vp_BFu8s()
{
  {
    init_simple_test("BFu9i_Vp_BFu8s");
    static STRUCT_IF_C BFu9i_Vp_BFu8s lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Vp_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu8s");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu8s.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 8, 1, "BFu9i_Vp_BFu8s");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 8, hide_ull(1LL<<7), "BFu9i_Vp_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu8s, BFu9i_Vp_BFu8s)
//============================================================================



static void Test_BFu9i_Vp_BFu9i()
{
  {
    init_simple_test("BFu9i_Vp_BFu9i");
    static STRUCT_IF_C BFu9i_Vp_BFu9i lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Vp_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu9i");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu9i.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 9, 1, "BFu9i_Vp_BFu9i");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu9i, BFu9i_Vp_BFu9i)
//============================================================================



static void Test_BFu9i_Vp_BFu9ll()
{
  {
    init_simple_test("BFu9i_Vp_BFu9ll");
    static STRUCT_IF_C BFu9i_Vp_BFu9ll lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Vp_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu9ll");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu9ll.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 9, 1, "BFu9i_Vp_BFu9ll");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu9ll, BFu9i_Vp_BFu9ll)
//============================================================================



static void Test_BFu9i_Vp_BFu9s()
{
  {
    init_simple_test("BFu9i_Vp_BFu9s");
    static STRUCT_IF_C BFu9i_Vp_BFu9s lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Vp_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu9s");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_BFu9s.v2");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 9, 1, "BFu9i_Vp_BFu9s");
    set_bf_and_test(lv, v3, ABISELECT(10,6), 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_BFu9s, BFu9i_Vp_BFu9s)
//============================================================================



static void Test_BFu9i_Vp_C()
{
  {
    init_simple_test("BFu9i_Vp_C");
    static STRUCT_IF_C BFu9i_Vp_C lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Vp_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_C");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_C.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Vp_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_C, BFu9i_Vp_C)
//============================================================================



static void Test_BFu9i_Vp_D()
{
  {
    init_simple_test("BFu9i_Vp_D");
    static STRUCT_IF_C BFu9i_Vp_D lv;
    check2(sizeof(lv), ABISELECT(18,14), "sizeof(BFu9i_Vp_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_D");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_D.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Vp_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_D, BFu9i_Vp_D)
//============================================================================



static void Test_BFu9i_Vp_F()
{
  {
    init_simple_test("BFu9i_Vp_F");
    static STRUCT_IF_C BFu9i_Vp_F lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_Vp_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_F");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_F.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Vp_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_F, BFu9i_Vp_F)
//============================================================================



static void Test_BFu9i_Vp_I()
{
  {
    init_simple_test("BFu9i_Vp_I");
    static STRUCT_IF_C BFu9i_Vp_I lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_Vp_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_I");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_I.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Vp_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_I, BFu9i_Vp_I)
//============================================================================



static void Test_BFu9i_Vp_Ip()
{
  {
    init_simple_test("BFu9i_Vp_Ip");
    static STRUCT_IF_C BFu9i_Vp_Ip lv;
    check2(sizeof(lv), ABISELECT(18,10), "sizeof(BFu9i_Vp_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_Ip");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_Ip.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Vp_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_Ip, BFu9i_Vp_Ip)
//============================================================================



static void Test_BFu9i_Vp_L()
{
  {
    init_simple_test("BFu9i_Vp_L");
    static STRUCT_IF_C BFu9i_Vp_L lv;
    check2(sizeof(lv), ABISELECT(18,14), "sizeof(BFu9i_Vp_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_L");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_L.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Vp_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_L, BFu9i_Vp_L)
//============================================================================



static void Test_BFu9i_Vp_S()
{
  {
    init_simple_test("BFu9i_Vp_S");
    static STRUCT_IF_C BFu9i_Vp_S lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Vp_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_S");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_S.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Vp_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_S, BFu9i_Vp_S)
//============================================================================



static void Test_BFu9i_Vp_Uc()
{
  {
    init_simple_test("BFu9i_Vp_Uc");
    static STRUCT_IF_C BFu9i_Vp_Uc lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9i_Vp_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_Uc");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_Uc.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Vp_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_Uc, BFu9i_Vp_Uc)
//============================================================================



static void Test_BFu9i_Vp_Ui()
{
  {
    init_simple_test("BFu9i_Vp_Ui");
    static STRUCT_IF_C BFu9i_Vp_Ui lv;
    check2(sizeof(lv), ABISELECT(14,10), "sizeof(BFu9i_Vp_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_Ui");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_Ui.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Vp_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_Ui, BFu9i_Vp_Ui)
//============================================================================



static void Test_BFu9i_Vp_Ul()
{
  {
    init_simple_test("BFu9i_Vp_Ul");
    static STRUCT_IF_C BFu9i_Vp_Ul lv;
    check2(sizeof(lv), ABISELECT(18,14), "sizeof(BFu9i_Vp_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_Ul");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_Ul.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Vp_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_Ul, BFu9i_Vp_Ul)
//============================================================================



static void Test_BFu9i_Vp_Us()
{
  {
    init_simple_test("BFu9i_Vp_Us");
    static STRUCT_IF_C BFu9i_Vp_Us lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9i_Vp_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_Us");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_Us.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Vp_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_Us, BFu9i_Vp_Us)
//============================================================================



static void Test_BFu9i_Vp_Vp()
{
  {
    init_simple_test("BFu9i_Vp_Vp");
    static STRUCT_IF_C BFu9i_Vp_Vp lv;
    check2(sizeof(lv), ABISELECT(18,10), "sizeof(BFu9i_Vp_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9i_Vp_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9i_Vp_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9i_Vp_Vp");
    check_field_offset(lv, v2, 2, "BFu9i_Vp_Vp.v2");
    check_field_offset(lv, v3, ABISELECT(10,6), "BFu9i_Vp_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9i_Vp_Vp, BFu9i_Vp_Vp)
//============================================================================



static void Test_BFu9ll()
{
  {
    init_simple_test("BFu9ll");
    static STRUCT_IF_C BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll, BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i, BFu9ll_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9i, BFu9ll_BFs9i_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9i_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9i_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9i_BFs9i, BFu9ll_BFs9i_BFs9i_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9i_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9i_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9i_BFs9ll, BFu9ll_BFs9i_BFs9i_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9i_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9i_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9i_BFs9s, BFu9ll_BFs9i_BFs9i_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9i_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9i_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9i_BFu9i, BFu9ll_BFs9i_BFs9i_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9i_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9i_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9i_BFu9ll, BFu9ll_BFs9i_BFs9i_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9i_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9i_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9i_BFu9s, BFu9ll_BFs9i_BFs9i_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9ll, BFu9ll_BFs9i_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9ll_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9ll_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9ll_BFs9i, BFu9ll_BFs9i_BFs9ll_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9ll_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9ll_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9ll_BFs9ll, BFu9ll_BFs9i_BFs9ll_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9ll_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9ll_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9ll_BFs9s, BFu9ll_BFs9i_BFs9ll_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9ll_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9ll_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9ll_BFu9i, BFu9ll_BFs9i_BFs9ll_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9ll_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9ll_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9ll_BFu9ll, BFu9ll_BFs9i_BFs9ll_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9ll_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9ll_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9ll_BFu9s, BFu9ll_BFs9i_BFs9ll_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9s, BFu9ll_BFs9i_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9s_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9s_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9s_BFs9i, BFu9ll_BFs9i_BFs9s_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9s_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9s_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9s_BFs9ll, BFu9ll_BFs9i_BFs9s_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9s_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9s_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9s_BFs9s, BFu9ll_BFs9i_BFs9s_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9s_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9s_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9s_BFu9i, BFu9ll_BFs9i_BFs9s_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9s_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9s_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9s_BFu9ll, BFu9ll_BFs9i_BFs9s_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9i_BFs9s_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFs9s_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9i_BFs9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFs9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFs9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFs9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFs9s_BFu9s, BFu9ll_BFs9i_BFs9s_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9i, BFu9ll_BFs9i_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9i_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9i_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9i_BFs9i, BFu9ll_BFs9i_BFu9i_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9i_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9i_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9i_BFs9ll, BFu9ll_BFs9i_BFu9i_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9i_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9i_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9i_BFs9s, BFu9ll_BFs9i_BFu9i_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9i_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9i_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9i_BFu9i, BFu9ll_BFs9i_BFu9i_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9i_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9i_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9i_BFu9ll, BFu9ll_BFs9i_BFu9i_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9i_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9i_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9i_BFu9s, BFu9ll_BFs9i_BFu9i_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9ll, BFu9ll_BFs9i_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9ll_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9ll_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9ll_BFs9i, BFu9ll_BFs9i_BFu9ll_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9ll_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9ll_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9ll_BFs9ll, BFu9ll_BFs9i_BFu9ll_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9ll_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9ll_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9ll_BFs9s, BFu9ll_BFs9i_BFu9ll_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9ll_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9ll_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9ll_BFu9i, BFu9ll_BFs9i_BFu9ll_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9ll_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9ll_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9ll_BFu9ll, BFu9ll_BFs9i_BFu9ll_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9ll_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9ll_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9ll_BFu9s, BFu9ll_BFs9i_BFu9ll_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9s, BFu9ll_BFs9i_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9s_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9s_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9s_BFs9i, BFu9ll_BFs9i_BFu9s_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9s_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9s_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9s_BFs9ll, BFu9ll_BFs9i_BFu9s_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9s_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9s_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9s_BFs9s, BFu9ll_BFs9i_BFu9s_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9s_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9s_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9s_BFu9i, BFu9ll_BFs9i_BFu9s_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9s_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9s_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9s_BFu9ll, BFu9ll_BFs9i_BFu9s_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9i_BFu9s_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9i_BFu9s_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9i_BFu9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9i_BFu9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9i_BFu9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9i_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9i_BFu9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9i_BFu9s_BFu9s, BFu9ll_BFs9i_BFu9s_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll, BFu9ll_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9i, BFu9ll_BFs9ll_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9i_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9i_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9i_BFs9i, BFu9ll_BFs9ll_BFs9i_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9i_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9i_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9i_BFs9ll, BFu9ll_BFs9ll_BFs9i_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9i_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9i_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9i_BFs9s, BFu9ll_BFs9ll_BFs9i_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9i_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9i_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9i_BFu9i, BFu9ll_BFs9ll_BFs9i_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9i_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9i_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9i_BFu9ll, BFu9ll_BFs9ll_BFs9i_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9i_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9i_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9i_BFu9s, BFu9ll_BFs9ll_BFs9i_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9ll, BFu9ll_BFs9ll_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9ll_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9ll_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9ll_BFs9i, BFu9ll_BFs9ll_BFs9ll_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9ll_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9ll_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9ll_BFs9ll, BFu9ll_BFs9ll_BFs9ll_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9ll_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9ll_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9ll_BFs9s, BFu9ll_BFs9ll_BFs9ll_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9ll_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9ll_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9ll_BFu9i, BFu9ll_BFs9ll_BFs9ll_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9ll_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9ll_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9ll_BFu9ll, BFu9ll_BFs9ll_BFs9ll_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9ll_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9ll_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9ll_BFu9s, BFu9ll_BFs9ll_BFs9ll_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9s, BFu9ll_BFs9ll_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9s_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9s_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9s_BFs9i, BFu9ll_BFs9ll_BFs9s_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9s_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9s_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9s_BFs9ll, BFu9ll_BFs9ll_BFs9s_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9s_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9s_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9s_BFs9s, BFu9ll_BFs9ll_BFs9s_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9s_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9s_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9s_BFu9i, BFu9ll_BFs9ll_BFs9s_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9s_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9s_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9s_BFu9ll, BFu9ll_BFs9ll_BFs9s_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFs9s_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFs9s_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFs9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFs9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFs9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFs9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFs9s_BFu9s, BFu9ll_BFs9ll_BFs9s_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9i, BFu9ll_BFs9ll_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9i_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9i_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9i_BFs9i, BFu9ll_BFs9ll_BFu9i_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9i_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9i_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9i_BFs9ll, BFu9ll_BFs9ll_BFu9i_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9i_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9i_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9i_BFs9s, BFu9ll_BFs9ll_BFu9i_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9i_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9i_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9i_BFu9i, BFu9ll_BFs9ll_BFu9i_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9i_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9i_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9i_BFu9ll, BFu9ll_BFs9ll_BFu9i_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9i_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9i_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9i_BFu9s, BFu9ll_BFs9ll_BFu9i_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9ll, BFu9ll_BFs9ll_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9ll_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9ll_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9ll_BFs9i, BFu9ll_BFs9ll_BFu9ll_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9ll_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9ll_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9ll_BFs9ll, BFu9ll_BFs9ll_BFu9ll_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9ll_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9ll_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9ll_BFs9s, BFu9ll_BFs9ll_BFu9ll_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9ll_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9ll_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9ll_BFu9i, BFu9ll_BFs9ll_BFu9ll_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9ll_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9ll_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9ll_BFu9ll, BFu9ll_BFs9ll_BFu9ll_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9ll_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9ll_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9ll_BFu9s, BFu9ll_BFs9ll_BFu9ll_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9s, BFu9ll_BFs9ll_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9s_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9s_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9s_BFs9i, BFu9ll_BFs9ll_BFu9s_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9s_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9s_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9s_BFs9ll, BFu9ll_BFs9ll_BFu9s_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9s_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9s_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9s_BFs9s, BFu9ll_BFs9ll_BFu9s_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9s_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9s_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9s_BFu9i, BFu9ll_BFs9ll_BFu9s_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9s_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9s_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9s_BFu9ll, BFu9ll_BFs9ll_BFu9s_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9ll_BFu9s_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9ll_BFu9s_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9ll_BFu9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9ll_BFu9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9ll_BFu9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9ll_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9ll_BFu9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9ll_BFu9s_BFu9s, BFu9ll_BFs9ll_BFu9s_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s, BFu9ll_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9i, BFu9ll_BFs9s_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9i_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9i_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9i_BFs9i, BFu9ll_BFs9s_BFs9i_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9i_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9i_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9i_BFs9ll, BFu9ll_BFs9s_BFs9i_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9i_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9i_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9i_BFs9s, BFu9ll_BFs9s_BFs9i_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9i_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9i_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9i_BFu9i, BFu9ll_BFs9s_BFs9i_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9i_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9i_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9i_BFu9ll, BFu9ll_BFs9s_BFs9i_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9i_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9i_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9i_BFu9s, BFu9ll_BFs9s_BFs9i_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9ll, BFu9ll_BFs9s_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9ll_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9ll_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9ll_BFs9i, BFu9ll_BFs9s_BFs9ll_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9ll_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9ll_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9ll_BFs9ll, BFu9ll_BFs9s_BFs9ll_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9ll_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9ll_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9ll_BFs9s, BFu9ll_BFs9s_BFs9ll_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9ll_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9ll_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9ll_BFu9i, BFu9ll_BFs9s_BFs9ll_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9ll_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9ll_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9ll_BFu9ll, BFu9ll_BFs9s_BFs9ll_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9ll_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9ll_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9ll_BFu9s, BFu9ll_BFs9s_BFs9ll_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9s, BFu9ll_BFs9s_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9s_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9s_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9s_BFs9i, BFu9ll_BFs9s_BFs9s_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9s_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9s_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9s_BFs9ll, BFu9ll_BFs9s_BFs9s_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9s_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9s_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9s_BFs9s, BFu9ll_BFs9s_BFs9s_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9s_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9s_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9s_BFu9i, BFu9ll_BFs9s_BFs9s_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9s_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9s_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9s_BFu9ll, BFu9ll_BFs9s_BFs9s_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9s_BFs9s_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFs9s_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9s_BFs9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFs9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFs9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFs9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFs9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFs9s_BFu9s, BFu9ll_BFs9s_BFs9s_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9i, BFu9ll_BFs9s_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9i_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9i_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9i_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9i_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9i_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9i_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9i_BFs9i, BFu9ll_BFs9s_BFu9i_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9i_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9i_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9i_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9i_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9i_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9i_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9i_BFs9ll, BFu9ll_BFs9s_BFu9i_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9i_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9i_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9i_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9i_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9i_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9i_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9i_BFs9s, BFu9ll_BFs9s_BFu9i_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9i_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9i_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9i_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9i_BFu9i, BFu9ll_BFs9s_BFu9i_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9i_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9i_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9i_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9i_BFu9ll, BFu9ll_BFs9s_BFu9i_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9i_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9i_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9i_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9i_BFu9s, BFu9ll_BFs9s_BFu9i_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9ll, BFu9ll_BFs9s_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9ll_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9ll_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9ll_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9ll_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9ll_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9ll_BFs9i, BFu9ll_BFs9s_BFu9ll_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9ll_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9ll_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9ll_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9ll_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9ll_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9ll_BFs9ll, BFu9ll_BFs9s_BFu9ll_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9ll_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9ll_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9ll_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9ll_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9ll_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9ll_BFs9s, BFu9ll_BFs9s_BFu9ll_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9ll_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9ll_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9ll_BFu9i, BFu9ll_BFs9s_BFu9ll_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9ll_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9ll_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9ll_BFu9ll, BFu9ll_BFs9s_BFu9ll_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9ll_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9ll_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9ll_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9ll_BFu9s, BFu9ll_BFs9s_BFu9ll_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFs9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9s, BFu9ll_BFs9s_BFu9s)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9s_BFs9i()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9s_BFs9i");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9s_BFs9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9s_BFs9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9s_BFs9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9s_BFs9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFs9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9s_BFs9i, BFu9ll_BFs9s_BFu9s_BFs9i)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9s_BFs9ll()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9s_BFs9ll");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9s_BFs9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9s_BFs9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9s_BFs9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9s_BFs9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFs9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9s_BFs9ll, BFu9ll_BFs9s_BFu9s_BFs9ll)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9s_BFs9s()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9s_BFs9s");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9s_BFs9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9s_BFs9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9s_BFs9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9s_BFs9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFs9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9s_BFs9s, BFu9ll_BFs9s_BFu9s_BFs9s)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9s_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9s_BFu9i");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9s_BFu9i");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9s_BFu9i, BFu9ll_BFs9s_BFu9s_BFu9i)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9s_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9s_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9s_BFu9ll");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9s_BFu9ll, BFu9ll_BFs9s_BFu9s_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFs9s_BFu9s_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFs9s_BFu9s_BFu9s");
    static STRUCT_IF_C BFu9ll_BFs9s_BFu9s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFs9s_BFu9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFs9s_BFu9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFs9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "BFu9ll_BFs9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_sll(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, 1, "BFu9ll_BFs9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v3, 2, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, 1, "BFu9ll_BFs9s_BFu9s_BFu9s");
    set_bf_and_test(lv, v4, 3, 3, 9, hide_ull(1LL<<8), "BFu9ll_BFs9s_BFu9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFs9s_BFu9s_BFu9s, BFu9ll_BFs9s_BFu9s_BFu9s)
//============================================================================



static void Test_BFu9ll_BFu15i()
{
  {
    init_simple_test("BFu9ll_BFu15i");
    static STRUCT_IF_C BFu9ll_BFu15i lv;
    check2(sizeof(lv), 3, "sizeof(BFu9ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i, BFu9ll_BFu15i)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu15i()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu15i");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9ll_BFu15i_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu15i, BFu9ll_BFu15i_BFu15i)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu15ll()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu15ll");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9ll_BFu15i_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu15ll, BFu9ll_BFu15i_BFu15ll)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu15s()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu15s");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9ll_BFu15i_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu15s, BFu9ll_BFu15i_BFu15s)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu16i()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu16i");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9ll_BFu15i_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9ll_BFu15i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu16i, BFu9ll_BFu15i_BFu16i)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu16ll()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu16ll");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9ll_BFu15i_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9ll_BFu15i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu16ll, BFu9ll_BFu15i_BFu16ll)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu16s()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu16s");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9ll_BFu15i_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9ll_BFu15i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu16s, BFu9ll_BFu15i_BFu16s)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu17i()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu17i");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu15i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu17i");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu9ll_BFu15i_BFu17i");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu9ll_BFu15i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu17i, BFu9ll_BFu15i_BFu17i)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu17ll()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu17ll");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu15i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu17ll");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu9ll_BFu15i_BFu17ll");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu9ll_BFu15i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu17ll, BFu9ll_BFu15i_BFu17ll)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu1c()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu1c");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu1c");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9ll_BFu15i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu1c, BFu9ll_BFu15i_BFu1c)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu1i()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu1i");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu1i");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9ll_BFu15i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu1i, BFu9ll_BFu15i_BFu1i)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu1ll()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu1ll");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu1ll");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9ll_BFu15i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu1ll, BFu9ll_BFu15i_BFu1ll)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu1s()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu1s");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu1s");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9ll_BFu15i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu1s, BFu9ll_BFu15i_BFu1s)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu31i()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu31i");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu9ll_BFu15i_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu9ll_BFu15i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu31i, BFu9ll_BFu15i_BFu31i)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu31ll()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu31ll");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu9ll_BFu15i_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu9ll_BFu15i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu31ll, BFu9ll_BFu15i_BFu31ll)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu32i()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu32i");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu9ll_BFu15i_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu9ll_BFu15i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu32i, BFu9ll_BFu15i_BFu32i)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu32ll()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu32ll");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu9ll_BFu15i_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu9ll_BFu15i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu32ll, BFu9ll_BFu15i_BFu32ll)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu33()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu33");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu15i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, 1, "BFu9ll_BFu15i_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, hide_ull(1LL<<32), "BFu9ll_BFu15i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu33, BFu9ll_BFu15i_BFu33)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu7c()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu7c");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9ll_BFu15i_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9ll_BFu15i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu7c, BFu9ll_BFu15i_BFu7c)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu7i()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu7i");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9ll_BFu15i_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9ll_BFu15i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu7i, BFu9ll_BFu15i_BFu7i)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu7ll()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu7ll");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9ll_BFu15i_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9ll_BFu15i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu7ll, BFu9ll_BFu15i_BFu7ll)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu7s()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu7s");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9ll_BFu15i_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9ll_BFu15i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu7s, BFu9ll_BFu15i_BFu7s)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu8c()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu8c");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9ll_BFu15i_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9ll_BFu15i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu8c, BFu9ll_BFu15i_BFu8c)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu8i()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu8i");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9ll_BFu15i_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9ll_BFu15i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu8i, BFu9ll_BFu15i_BFu8i)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu8ll()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu8ll");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9ll_BFu15i_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9ll_BFu15i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu8ll, BFu9ll_BFu15i_BFu8ll)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu8s()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu8s");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9ll_BFu15i_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9ll_BFu15i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu8s, BFu9ll_BFu15i_BFu8s)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu9i");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9ll_BFu15i_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu9i, BFu9ll_BFu15i_BFu9i)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9ll_BFu15i_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu9ll, BFu9ll_BFu15i_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFu15i_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFu15i_BFu9s");
    static STRUCT_IF_C BFu9ll_BFu15i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9ll_BFu15i_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_BFu9s, BFu9ll_BFu15i_BFu9s)
//============================================================================



static void Test_BFu9ll_BFu15i_C()
{
  {
    init_simple_test("BFu9ll_BFu15i_C");
    static STRUCT_IF_C BFu9ll_BFu15i_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_C");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_C");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_C");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_C, BFu9ll_BFu15i_C)
//============================================================================



static void Test_BFu9ll_BFu15i_D()
{
  {
    init_simple_test("BFu9ll_BFu15i_D");
    static STRUCT_IF_C BFu9ll_BFu15i_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu9ll_BFu15i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_D");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_D");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_D");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_D, BFu9ll_BFu15i_D)
//============================================================================



static void Test_BFu9ll_BFu15i_F()
{
  {
    init_simple_test("BFu9ll_BFu15i_F");
    static STRUCT_IF_C BFu9ll_BFu15i_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_F");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_F");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_F");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_F, BFu9ll_BFu15i_F)
//============================================================================



static void Test_BFu9ll_BFu15i_I()
{
  {
    init_simple_test("BFu9ll_BFu15i_I");
    static STRUCT_IF_C BFu9ll_BFu15i_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_I");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_I");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_I");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_I, BFu9ll_BFu15i_I)
//============================================================================



static void Test_BFu9ll_BFu15i_Ip()
{
  {
    init_simple_test("BFu9ll_BFu15i_Ip");
    static STRUCT_IF_C BFu9ll_BFu15i_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9ll_BFu15i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_Ip");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_Ip, BFu9ll_BFu15i_Ip)
//============================================================================



static void Test_BFu9ll_BFu15i_L()
{
  {
    init_simple_test("BFu9ll_BFu15i_L");
    static STRUCT_IF_C BFu9ll_BFu15i_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu9ll_BFu15i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_L");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_L");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_L");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_L, BFu9ll_BFu15i_L)
//============================================================================



static void Test_BFu9ll_BFu15i_S()
{
  {
    init_simple_test("BFu9ll_BFu15i_S");
    static STRUCT_IF_C BFu9ll_BFu15i_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_S");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_S");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_S");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_S, BFu9ll_BFu15i_S)
//============================================================================



static void Test_BFu9ll_BFu15i_Uc()
{
  {
    init_simple_test("BFu9ll_BFu15i_Uc");
    static STRUCT_IF_C BFu9ll_BFu15i_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_Uc");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_Uc, BFu9ll_BFu15i_Uc)
//============================================================================



static void Test_BFu9ll_BFu15i_Ui()
{
  {
    init_simple_test("BFu9ll_BFu15i_Ui");
    static STRUCT_IF_C BFu9ll_BFu15i_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_Ui");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_Ui, BFu9ll_BFu15i_Ui)
//============================================================================



static void Test_BFu9ll_BFu15i_Ul()
{
  {
    init_simple_test("BFu9ll_BFu15i_Ul");
    static STRUCT_IF_C BFu9ll_BFu15i_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu9ll_BFu15i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_Ul");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_Ul, BFu9ll_BFu15i_Ul)
//============================================================================



static void Test_BFu9ll_BFu15i_Us()
{
  {
    init_simple_test("BFu9ll_BFu15i_Us");
    static STRUCT_IF_C BFu9ll_BFu15i_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_Us");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_Us");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_Us");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_Us, BFu9ll_BFu15i_Us)
//============================================================================



static void Test_BFu9ll_BFu15i_Vp()
{
  {
    init_simple_test("BFu9ll_BFu15i_Vp");
    static STRUCT_IF_C BFu9ll_BFu15i_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9ll_BFu15i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15i_Vp");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15i_Vp, BFu9ll_BFu15i_Vp)
//============================================================================



static void Test_BFu9ll_BFu15ll()
{
  {
    init_simple_test("BFu9ll_BFu15ll");
    static STRUCT_IF_C BFu9ll_BFu15ll lv;
    check2(sizeof(lv), 3, "sizeof(BFu9ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll, BFu9ll_BFu15ll)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu15i()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu15i");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9ll_BFu15ll_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu15i, BFu9ll_BFu15ll_BFu15i)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu15ll()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu15ll");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9ll_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu15ll, BFu9ll_BFu15ll_BFu15ll)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu15s()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu15s");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9ll_BFu15ll_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu15s, BFu9ll_BFu15ll_BFu15s)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu16i()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu16i");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9ll_BFu15ll_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9ll_BFu15ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu16i, BFu9ll_BFu15ll_BFu16i)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu16ll()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu16ll");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9ll_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9ll_BFu15ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu16ll, BFu9ll_BFu15ll_BFu16ll)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu16s()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu16s");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9ll_BFu15ll_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9ll_BFu15ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu16s, BFu9ll_BFu15ll_BFu16s)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu17i()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu17i");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu15ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu17i");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu9ll_BFu15ll_BFu17i");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu9ll_BFu15ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu17i, BFu9ll_BFu15ll_BFu17i)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu17ll()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu17ll");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu15ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu9ll_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu9ll_BFu15ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu17ll, BFu9ll_BFu15ll_BFu17ll)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu1c()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu1c");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu1c");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9ll_BFu15ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu1c, BFu9ll_BFu15ll_BFu1c)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu1i()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu1i");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu1i");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9ll_BFu15ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu1i, BFu9ll_BFu15ll_BFu1i)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu1ll()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu1ll");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9ll_BFu15ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu1ll, BFu9ll_BFu15ll_BFu1ll)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu1s()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu1s");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu1s");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9ll_BFu15ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu1s, BFu9ll_BFu15ll_BFu1s)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu31i()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu31i");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu9ll_BFu15ll_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu9ll_BFu15ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu31i, BFu9ll_BFu15ll_BFu31i)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu31ll()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu31ll");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu9ll_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu9ll_BFu15ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu31ll, BFu9ll_BFu15ll_BFu31ll)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu32i()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu32i");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu9ll_BFu15ll_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu9ll_BFu15ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu32i, BFu9ll_BFu15ll_BFu32i)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu32ll()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu32ll");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu9ll_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu9ll_BFu15ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu32ll, BFu9ll_BFu15ll_BFu32ll)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu33()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu33");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu15ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, 1, "BFu9ll_BFu15ll_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, hide_ull(1LL<<32), "BFu9ll_BFu15ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu33, BFu9ll_BFu15ll_BFu33)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu7c()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu7c");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9ll_BFu15ll_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9ll_BFu15ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu7c, BFu9ll_BFu15ll_BFu7c)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu7i()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu7i");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9ll_BFu15ll_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9ll_BFu15ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu7i, BFu9ll_BFu15ll_BFu7i)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu7ll()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu7ll");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9ll_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9ll_BFu15ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu7ll, BFu9ll_BFu15ll_BFu7ll)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu7s()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu7s");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9ll_BFu15ll_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9ll_BFu15ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu7s, BFu9ll_BFu15ll_BFu7s)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu8c()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu8c");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9ll_BFu15ll_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9ll_BFu15ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu8c, BFu9ll_BFu15ll_BFu8c)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu8i()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu8i");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9ll_BFu15ll_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9ll_BFu15ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu8i, BFu9ll_BFu15ll_BFu8i)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu8ll()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu8ll");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9ll_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9ll_BFu15ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu8ll, BFu9ll_BFu15ll_BFu8ll)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu8s()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu8s");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9ll_BFu15ll_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9ll_BFu15ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu8s, BFu9ll_BFu15ll_BFu8s)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu9i");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9ll_BFu15ll_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu9i, BFu9ll_BFu15ll_BFu9i)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9ll_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu9ll, BFu9ll_BFu15ll_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFu15ll_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFu15ll_BFu9s");
    static STRUCT_IF_C BFu9ll_BFu15ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9ll_BFu15ll_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_BFu9s, BFu9ll_BFu15ll_BFu9s)
//============================================================================



static void Test_BFu9ll_BFu15ll_C()
{
  {
    init_simple_test("BFu9ll_BFu15ll_C");
    static STRUCT_IF_C BFu9ll_BFu15ll_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_C");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_C");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_C");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_C, BFu9ll_BFu15ll_C)
//============================================================================



static void Test_BFu9ll_BFu15ll_D()
{
  {
    init_simple_test("BFu9ll_BFu15ll_D");
    static STRUCT_IF_C BFu9ll_BFu15ll_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu9ll_BFu15ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_D");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_D");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_D");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_D, BFu9ll_BFu15ll_D)
//============================================================================



static void Test_BFu9ll_BFu15ll_F()
{
  {
    init_simple_test("BFu9ll_BFu15ll_F");
    static STRUCT_IF_C BFu9ll_BFu15ll_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_F");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_F");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_F");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_F, BFu9ll_BFu15ll_F)
//============================================================================



static void Test_BFu9ll_BFu15ll_I()
{
  {
    init_simple_test("BFu9ll_BFu15ll_I");
    static STRUCT_IF_C BFu9ll_BFu15ll_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_I");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_I");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_I");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_I, BFu9ll_BFu15ll_I)
//============================================================================



static void Test_BFu9ll_BFu15ll_Ip()
{
  {
    init_simple_test("BFu9ll_BFu15ll_Ip");
    static STRUCT_IF_C BFu9ll_BFu15ll_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9ll_BFu15ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_Ip");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_Ip, BFu9ll_BFu15ll_Ip)
//============================================================================



static void Test_BFu9ll_BFu15ll_L()
{
  {
    init_simple_test("BFu9ll_BFu15ll_L");
    static STRUCT_IF_C BFu9ll_BFu15ll_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu9ll_BFu15ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_L");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_L");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_L");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_L, BFu9ll_BFu15ll_L)
//============================================================================



static void Test_BFu9ll_BFu15ll_S()
{
  {
    init_simple_test("BFu9ll_BFu15ll_S");
    static STRUCT_IF_C BFu9ll_BFu15ll_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_S");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_S");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_S");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_S, BFu9ll_BFu15ll_S)
//============================================================================



static void Test_BFu9ll_BFu15ll_Uc()
{
  {
    init_simple_test("BFu9ll_BFu15ll_Uc");
    static STRUCT_IF_C BFu9ll_BFu15ll_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_Uc");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_Uc, BFu9ll_BFu15ll_Uc)
//============================================================================



static void Test_BFu9ll_BFu15ll_Ui()
{
  {
    init_simple_test("BFu9ll_BFu15ll_Ui");
    static STRUCT_IF_C BFu9ll_BFu15ll_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_Ui");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_Ui, BFu9ll_BFu15ll_Ui)
//============================================================================



static void Test_BFu9ll_BFu15ll_Ul()
{
  {
    init_simple_test("BFu9ll_BFu15ll_Ul");
    static STRUCT_IF_C BFu9ll_BFu15ll_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu9ll_BFu15ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_Ul");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_Ul, BFu9ll_BFu15ll_Ul)
//============================================================================



static void Test_BFu9ll_BFu15ll_Us()
{
  {
    init_simple_test("BFu9ll_BFu15ll_Us");
    static STRUCT_IF_C BFu9ll_BFu15ll_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_Us");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_Us, BFu9ll_BFu15ll_Us)
//============================================================================



static void Test_BFu9ll_BFu15ll_Vp()
{
  {
    init_simple_test("BFu9ll_BFu15ll_Vp");
    static STRUCT_IF_C BFu9ll_BFu15ll_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9ll_BFu15ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15ll_Vp");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15ll_Vp, BFu9ll_BFu15ll_Vp)
//============================================================================



static void Test_BFu9ll_BFu15s()
{
  {
    init_simple_test("BFu9ll_BFu15s");
    static STRUCT_IF_C BFu9ll_BFu15s lv;
    check2(sizeof(lv), 3, "sizeof(BFu9ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s, BFu9ll_BFu15s)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu15i()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu15i");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9ll_BFu15s_BFu15i");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu15i, BFu9ll_BFu15s_BFu15i)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu15ll()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu15ll");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9ll_BFu15s_BFu15ll");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu15ll, BFu9ll_BFu15s_BFu15ll)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu15s()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu15s");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, 1, "BFu9ll_BFu15s_BFu15s");
    set_bf_and_test(lv, v3, 3, 0, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu15s, BFu9ll_BFu15s_BFu15s)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu16i()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu16i");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9ll_BFu15s_BFu16i");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9ll_BFu15s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu16i, BFu9ll_BFu15s_BFu16i)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu16ll()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu16ll");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9ll_BFu15s_BFu16ll");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9ll_BFu15s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu16ll, BFu9ll_BFu15s_BFu16ll)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu16s()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu16s");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, 1, "BFu9ll_BFu15s_BFu16s");
    set_bf_and_test(lv, v3, 3, 0, 16, hide_ull(1LL<<15), "BFu9ll_BFu15s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu16s, BFu9ll_BFu15s_BFu16s)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu17i()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu17i");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu15s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu17i");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu9ll_BFu15s_BFu17i");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu9ll_BFu15s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu17i, BFu9ll_BFu15s_BFu17i)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu17ll()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu17ll");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu15s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu17ll");
    set_bf_and_test(lv, v3, 3, 0, 17, 1, "BFu9ll_BFu15s_BFu17ll");
    set_bf_and_test(lv, v3, 3, 0, 17, hide_ull(1LL<<16), "BFu9ll_BFu15s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu17ll, BFu9ll_BFu15s_BFu17ll)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu1c()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu1c");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu1c");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9ll_BFu15s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu1c, BFu9ll_BFu15s_BFu1c)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu1i()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu1i");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu1i");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9ll_BFu15s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu1i, BFu9ll_BFu15s_BFu1i)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu1ll()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu1ll");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu1ll");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9ll_BFu15s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu1ll, BFu9ll_BFu15s_BFu1ll)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu1s()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu1s");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu1s");
    set_bf_and_test(lv, v3, 3, 0, 1, 1, "BFu9ll_BFu15s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu1s, BFu9ll_BFu15s_BFu1s)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu31i()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu31i");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu9ll_BFu15s_BFu31i");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu9ll_BFu15s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu31i, BFu9ll_BFu15s_BFu31i)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu31ll()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu31ll");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, 1, "BFu9ll_BFu15s_BFu31ll");
    set_bf_and_test(lv, v3, 3, 0, 31, hide_ull(1LL<<30), "BFu9ll_BFu15s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu31ll, BFu9ll_BFu15s_BFu31ll)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu32i()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu32i");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu9ll_BFu15s_BFu32i");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu9ll_BFu15s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu32i, BFu9ll_BFu15s_BFu32i)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu32ll()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu32ll");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, 1, "BFu9ll_BFu15s_BFu32ll");
    set_bf_and_test(lv, v3, 3, 0, 32, hide_ull(1LL<<31), "BFu9ll_BFu15s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu32ll, BFu9ll_BFu15s_BFu32ll)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu33()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu33");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu15s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, 1, "BFu9ll_BFu15s_BFu33");
    set_bf_and_test(lv, v3, 3, 0, 33, hide_ull(1LL<<32), "BFu9ll_BFu15s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu33, BFu9ll_BFu15s_BFu33)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu7c()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu7c");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9ll_BFu15s_BFu7c");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9ll_BFu15s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu7c, BFu9ll_BFu15s_BFu7c)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu7i()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu7i");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9ll_BFu15s_BFu7i");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9ll_BFu15s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu7i, BFu9ll_BFu15s_BFu7i)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu7ll()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu7ll");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9ll_BFu15s_BFu7ll");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9ll_BFu15s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu7ll, BFu9ll_BFu15s_BFu7ll)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu7s()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu7s");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, 1, "BFu9ll_BFu15s_BFu7s");
    set_bf_and_test(lv, v3, 3, 0, 7, hide_ull(1LL<<6), "BFu9ll_BFu15s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu7s, BFu9ll_BFu15s_BFu7s)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu8c()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu8c");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9ll_BFu15s_BFu8c");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9ll_BFu15s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu8c, BFu9ll_BFu15s_BFu8c)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu8i()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu8i");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9ll_BFu15s_BFu8i");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9ll_BFu15s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu8i, BFu9ll_BFu15s_BFu8i)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu8ll()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu8ll");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9ll_BFu15s_BFu8ll");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9ll_BFu15s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu8ll, BFu9ll_BFu15s_BFu8ll)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu8s()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu8s");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, 1, "BFu9ll_BFu15s_BFu8s");
    set_bf_and_test(lv, v3, 3, 0, 8, hide_ull(1LL<<7), "BFu9ll_BFu15s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu8s, BFu9ll_BFu15s_BFu8s)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu9i");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9ll_BFu15s_BFu9i");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu9i, BFu9ll_BFu15s_BFu9i)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9ll_BFu15s_BFu9ll");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu9ll, BFu9ll_BFu15s_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFu15s_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFu15s_BFu9s");
    static STRUCT_IF_C BFu9ll_BFu15s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, 1, "BFu9ll_BFu15s_BFu9s");
    set_bf_and_test(lv, v3, 3, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_BFu9s, BFu9ll_BFu15s_BFu9s)
//============================================================================



static void Test_BFu9ll_BFu15s_C()
{
  {
    init_simple_test("BFu9ll_BFu15s_C");
    static STRUCT_IF_C BFu9ll_BFu15s_C lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15s_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_C");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_C");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_C");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_C, BFu9ll_BFu15s_C)
//============================================================================



static void Test_BFu9ll_BFu15s_D()
{
  {
    init_simple_test("BFu9ll_BFu15s_D");
    static STRUCT_IF_C BFu9ll_BFu15s_D lv;
    check2(sizeof(lv), 11, "sizeof(BFu9ll_BFu15s_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_D");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_D");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_D");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_D, BFu9ll_BFu15s_D)
//============================================================================



static void Test_BFu9ll_BFu15s_F()
{
  {
    init_simple_test("BFu9ll_BFu15s_F");
    static STRUCT_IF_C BFu9ll_BFu15s_F lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15s_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_F");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_F");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_F");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_F, BFu9ll_BFu15s_F)
//============================================================================



static void Test_BFu9ll_BFu15s_I()
{
  {
    init_simple_test("BFu9ll_BFu15s_I");
    static STRUCT_IF_C BFu9ll_BFu15s_I lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15s_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_I");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_I");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_I");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_I, BFu9ll_BFu15s_I)
//============================================================================



static void Test_BFu9ll_BFu15s_Ip()
{
  {
    init_simple_test("BFu9ll_BFu15s_Ip");
    static STRUCT_IF_C BFu9ll_BFu15s_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9ll_BFu15s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_Ip");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_Ip");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_Ip");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_Ip, BFu9ll_BFu15s_Ip)
//============================================================================



static void Test_BFu9ll_BFu15s_L()
{
  {
    init_simple_test("BFu9ll_BFu15s_L");
    static STRUCT_IF_C BFu9ll_BFu15s_L lv;
    check2(sizeof(lv), 11, "sizeof(BFu9ll_BFu15s_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_L");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_L");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_L");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_L, BFu9ll_BFu15s_L)
//============================================================================



static void Test_BFu9ll_BFu15s_S()
{
  {
    init_simple_test("BFu9ll_BFu15s_S");
    static STRUCT_IF_C BFu9ll_BFu15s_S lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15s_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_S");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_S");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_S");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_S, BFu9ll_BFu15s_S)
//============================================================================



static void Test_BFu9ll_BFu15s_Uc()
{
  {
    init_simple_test("BFu9ll_BFu15s_Uc");
    static STRUCT_IF_C BFu9ll_BFu15s_Uc lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu15s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_Uc");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_Uc");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_Uc");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_Uc, BFu9ll_BFu15s_Uc)
//============================================================================



static void Test_BFu9ll_BFu15s_Ui()
{
  {
    init_simple_test("BFu9ll_BFu15s_Ui");
    static STRUCT_IF_C BFu9ll_BFu15s_Ui lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu15s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_Ui");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_Ui");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_Ui");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_Ui, BFu9ll_BFu15s_Ui)
//============================================================================



static void Test_BFu9ll_BFu15s_Ul()
{
  {
    init_simple_test("BFu9ll_BFu15s_Ul");
    static STRUCT_IF_C BFu9ll_BFu15s_Ul lv;
    check2(sizeof(lv), 11, "sizeof(BFu9ll_BFu15s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_Ul");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_Ul");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_Ul");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_Ul, BFu9ll_BFu15s_Ul)
//============================================================================



static void Test_BFu9ll_BFu15s_Us()
{
  {
    init_simple_test("BFu9ll_BFu15s_Us");
    static STRUCT_IF_C BFu9ll_BFu15s_Us lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu15s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_Us");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_Us");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_Us");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_Us, BFu9ll_BFu15s_Us)
//============================================================================



static void Test_BFu9ll_BFu15s_Vp()
{
  {
    init_simple_test("BFu9ll_BFu15s_Vp");
    static STRUCT_IF_C BFu9ll_BFu15s_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(BFu9ll_BFu15s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu15s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu15s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu15s_Vp");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "BFu9ll_BFu15s_Vp");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu15s_Vp");
    check_field_offset(lv, v3, 3, "BFu9ll_BFu15s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu15s_Vp, BFu9ll_BFu15s_Vp)
//============================================================================



static void Test_BFu9ll_BFu16i()
{
  {
    init_simple_test("BFu9ll_BFu16i");
    static STRUCT_IF_C BFu9ll_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i, BFu9ll_BFu16i)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu15i()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu15i");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu15i");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9ll_BFu16i_BFu15i");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu16i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu15i, BFu9ll_BFu16i_BFu15i)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu15ll()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu15ll");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu15ll");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9ll_BFu16i_BFu15ll");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu16i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu15ll, BFu9ll_BFu16i_BFu15ll)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu15s()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu15s");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu15s");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9ll_BFu16i_BFu15s");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu16i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu15s, BFu9ll_BFu16i_BFu15s)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu16i()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu16i");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu16i");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9ll_BFu16i_BFu16i");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu16i, BFu9ll_BFu16i_BFu16i)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu16ll()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu16ll");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu16ll");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9ll_BFu16i_BFu16ll");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu16ll, BFu9ll_BFu16i_BFu16ll)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu16s()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu16s");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu16s");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9ll_BFu16i_BFu16s");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu16s, BFu9ll_BFu16i_BFu16s)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu17i()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu17i");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu17i");
    set_bf_and_test(lv, v3, 3, 1, 17, 1, "BFu9ll_BFu16i_BFu17i");
    set_bf_and_test(lv, v3, 3, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu16i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu17i, BFu9ll_BFu16i_BFu17i)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu17ll()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu17ll");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu17ll");
    set_bf_and_test(lv, v3, 3, 1, 17, 1, "BFu9ll_BFu16i_BFu17ll");
    set_bf_and_test(lv, v3, 3, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu16i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu17ll, BFu9ll_BFu16i_BFu17ll)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu1c()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu1c");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu1c");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9ll_BFu16i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu1c, BFu9ll_BFu16i_BFu1c)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu1i()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu1i");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu1i");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9ll_BFu16i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu1i, BFu9ll_BFu16i_BFu1i)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu1ll()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu1ll");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu1ll");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9ll_BFu16i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu1ll, BFu9ll_BFu16i_BFu1ll)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu1s()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu1s");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu1s");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9ll_BFu16i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu1s, BFu9ll_BFu16i_BFu1s)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu31i()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu31i");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu16i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu31i");
    set_bf_and_test(lv, v3, 3, 1, 31, 1, "BFu9ll_BFu16i_BFu31i");
    set_bf_and_test(lv, v3, 3, 1, 31, hide_ull(1LL<<30), "BFu9ll_BFu16i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu31i, BFu9ll_BFu16i_BFu31i)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu31ll()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu31ll");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu16i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu31ll");
    set_bf_and_test(lv, v3, 3, 1, 31, 1, "BFu9ll_BFu16i_BFu31ll");
    set_bf_and_test(lv, v3, 3, 1, 31, hide_ull(1LL<<30), "BFu9ll_BFu16i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu31ll, BFu9ll_BFu16i_BFu31ll)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu32i()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu32i");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu32i");
    set_bf_and_test(lv, v3, 3, 1, 32, 1, "BFu9ll_BFu16i_BFu32i");
    set_bf_and_test(lv, v3, 3, 1, 32, hide_ull(1LL<<31), "BFu9ll_BFu16i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu32i, BFu9ll_BFu16i_BFu32i)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu32ll()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu32ll");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu32ll");
    set_bf_and_test(lv, v3, 3, 1, 32, 1, "BFu9ll_BFu16i_BFu32ll");
    set_bf_and_test(lv, v3, 3, 1, 32, hide_ull(1LL<<31), "BFu9ll_BFu16i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu32ll, BFu9ll_BFu16i_BFu32ll)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu33()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu33");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu33");
    set_bf_and_test(lv, v3, 3, 1, 33, 1, "BFu9ll_BFu16i_BFu33");
    set_bf_and_test(lv, v3, 3, 1, 33, hide_ull(1LL<<32), "BFu9ll_BFu16i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu33, BFu9ll_BFu16i_BFu33)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu7c()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu7c");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu7c");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9ll_BFu16i_BFu7c");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9ll_BFu16i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu7c, BFu9ll_BFu16i_BFu7c)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu7i()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu7i");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu7i");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9ll_BFu16i_BFu7i");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9ll_BFu16i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu7i, BFu9ll_BFu16i_BFu7i)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu7ll()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu7ll");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu7ll");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9ll_BFu16i_BFu7ll");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9ll_BFu16i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu7ll, BFu9ll_BFu16i_BFu7ll)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu7s()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu7s");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu7s");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9ll_BFu16i_BFu7s");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9ll_BFu16i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu7s, BFu9ll_BFu16i_BFu7s)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu8c()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu8c");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu8c");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9ll_BFu16i_BFu8c");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9ll_BFu16i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu8c, BFu9ll_BFu16i_BFu8c)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu8i()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu8i");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu8i");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9ll_BFu16i_BFu8i");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9ll_BFu16i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu8i, BFu9ll_BFu16i_BFu8i)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu8ll()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu8ll");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu8ll");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9ll_BFu16i_BFu8ll");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9ll_BFu16i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu8ll, BFu9ll_BFu16i_BFu8ll)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu8s()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu8s");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu8s");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9ll_BFu16i_BFu8s");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9ll_BFu16i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu8s, BFu9ll_BFu16i_BFu8s)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu9i");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu9i");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9ll_BFu16i_BFu9i");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu9i, BFu9ll_BFu16i_BFu9i)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu9ll");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9ll_BFu16i_BFu9ll");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu9ll, BFu9ll_BFu16i_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFu16i_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFu16i_BFu9s");
    static STRUCT_IF_C BFu9ll_BFu16i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_BFu9s");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9ll_BFu16i_BFu9s");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_BFu9s, BFu9ll_BFu16i_BFu9s)
//============================================================================



static void Test_BFu9ll_BFu16i_C()
{
  {
    init_simple_test("BFu9ll_BFu16i_C");
    static STRUCT_IF_C BFu9ll_BFu16i_C lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_C");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_C");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_C");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_C, BFu9ll_BFu16i_C)
//============================================================================



static void Test_BFu9ll_BFu16i_D()
{
  {
    init_simple_test("BFu9ll_BFu16i_D");
    static STRUCT_IF_C BFu9ll_BFu16i_D lv;
    check2(sizeof(lv), 12, "sizeof(BFu9ll_BFu16i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_D");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_D");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_D");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_D, BFu9ll_BFu16i_D)
//============================================================================



static void Test_BFu9ll_BFu16i_F()
{
  {
    init_simple_test("BFu9ll_BFu16i_F");
    static STRUCT_IF_C BFu9ll_BFu16i_F lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_F");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_F");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_F");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_F, BFu9ll_BFu16i_F)
//============================================================================



static void Test_BFu9ll_BFu16i_I()
{
  {
    init_simple_test("BFu9ll_BFu16i_I");
    static STRUCT_IF_C BFu9ll_BFu16i_I lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_I");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_I");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_I");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_I, BFu9ll_BFu16i_I)
//============================================================================



static void Test_BFu9ll_BFu16i_Ip()
{
  {
    init_simple_test("BFu9ll_BFu16i_Ip");
    static STRUCT_IF_C BFu9ll_BFu16i_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9ll_BFu16i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_Ip");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_Ip, BFu9ll_BFu16i_Ip)
//============================================================================



static void Test_BFu9ll_BFu16i_L()
{
  {
    init_simple_test("BFu9ll_BFu16i_L");
    static STRUCT_IF_C BFu9ll_BFu16i_L lv;
    check2(sizeof(lv), 12, "sizeof(BFu9ll_BFu16i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_L");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_L");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_L");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_L, BFu9ll_BFu16i_L)
//============================================================================



static void Test_BFu9ll_BFu16i_S()
{
  {
    init_simple_test("BFu9ll_BFu16i_S");
    static STRUCT_IF_C BFu9ll_BFu16i_S lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_S");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_S");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_S");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_S, BFu9ll_BFu16i_S)
//============================================================================



static void Test_BFu9ll_BFu16i_Uc()
{
  {
    init_simple_test("BFu9ll_BFu16i_Uc");
    static STRUCT_IF_C BFu9ll_BFu16i_Uc lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_Uc");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_Uc, BFu9ll_BFu16i_Uc)
//============================================================================



static void Test_BFu9ll_BFu16i_Ui()
{
  {
    init_simple_test("BFu9ll_BFu16i_Ui");
    static STRUCT_IF_C BFu9ll_BFu16i_Ui lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_Ui");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_Ui, BFu9ll_BFu16i_Ui)
//============================================================================



static void Test_BFu9ll_BFu16i_Ul()
{
  {
    init_simple_test("BFu9ll_BFu16i_Ul");
    static STRUCT_IF_C BFu9ll_BFu16i_Ul lv;
    check2(sizeof(lv), 12, "sizeof(BFu9ll_BFu16i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_Ul");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_Ul, BFu9ll_BFu16i_Ul)
//============================================================================



static void Test_BFu9ll_BFu16i_Us()
{
  {
    init_simple_test("BFu9ll_BFu16i_Us");
    static STRUCT_IF_C BFu9ll_BFu16i_Us lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_Us");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_Us");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_Us");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_Us, BFu9ll_BFu16i_Us)
//============================================================================



static void Test_BFu9ll_BFu16i_Vp()
{
  {
    init_simple_test("BFu9ll_BFu16i_Vp");
    static STRUCT_IF_C BFu9ll_BFu16i_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9ll_BFu16i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16i_Vp");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16i_Vp, BFu9ll_BFu16i_Vp)
//============================================================================



static void Test_BFu9ll_BFu16ll()
{
  {
    init_simple_test("BFu9ll_BFu16ll");
    static STRUCT_IF_C BFu9ll_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll, BFu9ll_BFu16ll)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu15i()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu15i");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu15i");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9ll_BFu16ll_BFu15i");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu16ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu15i, BFu9ll_BFu16ll_BFu15i)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu15ll()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu15ll");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9ll_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu16ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu15ll, BFu9ll_BFu16ll_BFu15ll)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu15s()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu15s");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu15s");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9ll_BFu16ll_BFu15s");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu16ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu15s, BFu9ll_BFu16ll_BFu15s)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu16i()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu16i");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu16i");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9ll_BFu16ll_BFu16i");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu16i, BFu9ll_BFu16ll_BFu16i)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu16ll()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu16ll");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9ll_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu16ll, BFu9ll_BFu16ll_BFu16ll)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu16s()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu16s");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu16s");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9ll_BFu16ll_BFu16s");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu16s, BFu9ll_BFu16ll_BFu16s)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu17i()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu17i");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu17i");
    set_bf_and_test(lv, v3, 3, 1, 17, 1, "BFu9ll_BFu16ll_BFu17i");
    set_bf_and_test(lv, v3, 3, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu16ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu17i, BFu9ll_BFu16ll_BFu17i)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu17ll()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu17ll");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v3, 3, 1, 17, 1, "BFu9ll_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v3, 3, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu16ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu17ll, BFu9ll_BFu16ll_BFu17ll)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu1c()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu1c");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu1c");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9ll_BFu16ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu1c, BFu9ll_BFu16ll_BFu1c)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu1i()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu1i");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu1i");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9ll_BFu16ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu1i, BFu9ll_BFu16ll_BFu1i)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu1ll()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu1ll");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9ll_BFu16ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu1ll, BFu9ll_BFu16ll_BFu1ll)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu1s()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu1s");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu1s");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9ll_BFu16ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu1s, BFu9ll_BFu16ll_BFu1s)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu31i()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu31i");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu16ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu31i");
    set_bf_and_test(lv, v3, 3, 1, 31, 1, "BFu9ll_BFu16ll_BFu31i");
    set_bf_and_test(lv, v3, 3, 1, 31, hide_ull(1LL<<30), "BFu9ll_BFu16ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu31i, BFu9ll_BFu16ll_BFu31i)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu31ll()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu31ll");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu16ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v3, 3, 1, 31, 1, "BFu9ll_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v3, 3, 1, 31, hide_ull(1LL<<30), "BFu9ll_BFu16ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu31ll, BFu9ll_BFu16ll_BFu31ll)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu32i()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu32i");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu32i");
    set_bf_and_test(lv, v3, 3, 1, 32, 1, "BFu9ll_BFu16ll_BFu32i");
    set_bf_and_test(lv, v3, 3, 1, 32, hide_ull(1LL<<31), "BFu9ll_BFu16ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu32i, BFu9ll_BFu16ll_BFu32i)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu32ll()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu32ll");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v3, 3, 1, 32, 1, "BFu9ll_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v3, 3, 1, 32, hide_ull(1LL<<31), "BFu9ll_BFu16ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu32ll, BFu9ll_BFu16ll_BFu32ll)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu33()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu33");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu33");
    set_bf_and_test(lv, v3, 3, 1, 33, 1, "BFu9ll_BFu16ll_BFu33");
    set_bf_and_test(lv, v3, 3, 1, 33, hide_ull(1LL<<32), "BFu9ll_BFu16ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu33, BFu9ll_BFu16ll_BFu33)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu7c()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu7c");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu7c");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9ll_BFu16ll_BFu7c");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9ll_BFu16ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu7c, BFu9ll_BFu16ll_BFu7c)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu7i()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu7i");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu7i");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9ll_BFu16ll_BFu7i");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9ll_BFu16ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu7i, BFu9ll_BFu16ll_BFu7i)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu7ll()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu7ll");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9ll_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9ll_BFu16ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu7ll, BFu9ll_BFu16ll_BFu7ll)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu7s()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu7s");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu7s");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9ll_BFu16ll_BFu7s");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9ll_BFu16ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu7s, BFu9ll_BFu16ll_BFu7s)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu8c()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu8c");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu8c");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9ll_BFu16ll_BFu8c");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9ll_BFu16ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu8c, BFu9ll_BFu16ll_BFu8c)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu8i()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu8i");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu8i");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9ll_BFu16ll_BFu8i");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9ll_BFu16ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu8i, BFu9ll_BFu16ll_BFu8i)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu8ll()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu8ll");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9ll_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9ll_BFu16ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu8ll, BFu9ll_BFu16ll_BFu8ll)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu8s()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu8s");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu8s");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9ll_BFu16ll_BFu8s");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9ll_BFu16ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu8s, BFu9ll_BFu16ll_BFu8s)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu9i");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu9i");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9ll_BFu16ll_BFu9i");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu9i, BFu9ll_BFu16ll_BFu9i)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9ll_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu9ll, BFu9ll_BFu16ll_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFu16ll_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFu16ll_BFu9s");
    static STRUCT_IF_C BFu9ll_BFu16ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_BFu9s");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9ll_BFu16ll_BFu9s");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_BFu9s, BFu9ll_BFu16ll_BFu9s)
//============================================================================



static void Test_BFu9ll_BFu16ll_C()
{
  {
    init_simple_test("BFu9ll_BFu16ll_C");
    static STRUCT_IF_C BFu9ll_BFu16ll_C lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_C");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_C");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_C");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_C, BFu9ll_BFu16ll_C)
//============================================================================



static void Test_BFu9ll_BFu16ll_D()
{
  {
    init_simple_test("BFu9ll_BFu16ll_D");
    static STRUCT_IF_C BFu9ll_BFu16ll_D lv;
    check2(sizeof(lv), 12, "sizeof(BFu9ll_BFu16ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_D");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_D");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_D");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_D, BFu9ll_BFu16ll_D)
//============================================================================



static void Test_BFu9ll_BFu16ll_F()
{
  {
    init_simple_test("BFu9ll_BFu16ll_F");
    static STRUCT_IF_C BFu9ll_BFu16ll_F lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_F");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_F");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_F");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_F, BFu9ll_BFu16ll_F)
//============================================================================



static void Test_BFu9ll_BFu16ll_I()
{
  {
    init_simple_test("BFu9ll_BFu16ll_I");
    static STRUCT_IF_C BFu9ll_BFu16ll_I lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_I");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_I");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_I");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_I, BFu9ll_BFu16ll_I)
//============================================================================



static void Test_BFu9ll_BFu16ll_Ip()
{
  {
    init_simple_test("BFu9ll_BFu16ll_Ip");
    static STRUCT_IF_C BFu9ll_BFu16ll_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9ll_BFu16ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_Ip");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_Ip, BFu9ll_BFu16ll_Ip)
//============================================================================



static void Test_BFu9ll_BFu16ll_L()
{
  {
    init_simple_test("BFu9ll_BFu16ll_L");
    static STRUCT_IF_C BFu9ll_BFu16ll_L lv;
    check2(sizeof(lv), 12, "sizeof(BFu9ll_BFu16ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_L");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_L");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_L");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_L, BFu9ll_BFu16ll_L)
//============================================================================



static void Test_BFu9ll_BFu16ll_S()
{
  {
    init_simple_test("BFu9ll_BFu16ll_S");
    static STRUCT_IF_C BFu9ll_BFu16ll_S lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_S");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_S");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_S");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_S, BFu9ll_BFu16ll_S)
//============================================================================



static void Test_BFu9ll_BFu16ll_Uc()
{
  {
    init_simple_test("BFu9ll_BFu16ll_Uc");
    static STRUCT_IF_C BFu9ll_BFu16ll_Uc lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_Uc");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_Uc, BFu9ll_BFu16ll_Uc)
//============================================================================



static void Test_BFu9ll_BFu16ll_Ui()
{
  {
    init_simple_test("BFu9ll_BFu16ll_Ui");
    static STRUCT_IF_C BFu9ll_BFu16ll_Ui lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_Ui");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_Ui");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16ll_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_Ui, BFu9ll_BFu16ll_Ui)
//============================================================================



static void Test_BFu9ll_BFu16ll_Ul()
{
  {
    init_simple_test("BFu9ll_BFu16ll_Ul");
    static STRUCT_IF_C BFu9ll_BFu16ll_Ul lv;
    check2(sizeof(lv), 12, "sizeof(BFu9ll_BFu16ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_Ul");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_Ul");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16ll_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_Ul, BFu9ll_BFu16ll_Ul)
//============================================================================



static void Test_BFu9ll_BFu16ll_Us()
{
  {
    init_simple_test("BFu9ll_BFu16ll_Us");
    static STRUCT_IF_C BFu9ll_BFu16ll_Us lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_Us");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_Us");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16ll_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_Us, BFu9ll_BFu16ll_Us)
//============================================================================



static void Test_BFu9ll_BFu16ll_Vp()
{
  {
    init_simple_test("BFu9ll_BFu16ll_Vp");
    static STRUCT_IF_C BFu9ll_BFu16ll_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9ll_BFu16ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16ll_Vp");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16ll_Vp");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16ll_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16ll_Vp, BFu9ll_BFu16ll_Vp)
//============================================================================



static void Test_BFu9ll_BFu16s()
{
  {
    init_simple_test("BFu9ll_BFu16s");
    static STRUCT_IF_C BFu9ll_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s, BFu9ll_BFu16s)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu15i()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu15i");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu15i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu15i");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9ll_BFu16s_BFu15i");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu16s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu15i, BFu9ll_BFu16s_BFu15i)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu15ll()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu15ll");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu15ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu15ll");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9ll_BFu16s_BFu15ll");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu16s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu15ll, BFu9ll_BFu16s_BFu15ll)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu15s()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu15s");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu15s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu15s");
    set_bf_and_test(lv, v3, 3, 1, 15, 1, "BFu9ll_BFu16s_BFu15s");
    set_bf_and_test(lv, v3, 3, 1, 15, hide_ull(1LL<<14), "BFu9ll_BFu16s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu15s, BFu9ll_BFu16s_BFu15s)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu16i()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu16i");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu16i");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9ll_BFu16s_BFu16i");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu16i, BFu9ll_BFu16s_BFu16i)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu16ll()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu16ll");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu16ll");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9ll_BFu16s_BFu16ll");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu16ll, BFu9ll_BFu16s_BFu16ll)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu16s()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu16s");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu16s");
    set_bf_and_test(lv, v3, 3, 1, 16, 1, "BFu9ll_BFu16s_BFu16s");
    set_bf_and_test(lv, v3, 3, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu16s, BFu9ll_BFu16s_BFu16s)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu17i()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu17i");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu17i");
    set_bf_and_test(lv, v3, 3, 1, 17, 1, "BFu9ll_BFu16s_BFu17i");
    set_bf_and_test(lv, v3, 3, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu16s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu17i, BFu9ll_BFu16s_BFu17i)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu17ll()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu17ll");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu17ll");
    set_bf_and_test(lv, v3, 3, 1, 17, 1, "BFu9ll_BFu16s_BFu17ll");
    set_bf_and_test(lv, v3, 3, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu16s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu17ll, BFu9ll_BFu16s_BFu17ll)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu1c()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu1c");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu1c");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9ll_BFu16s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu1c, BFu9ll_BFu16s_BFu1c)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu1i()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu1i");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu1i");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9ll_BFu16s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu1i, BFu9ll_BFu16s_BFu1i)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu1ll()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu1ll");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu1ll");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9ll_BFu16s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu1ll, BFu9ll_BFu16s_BFu1ll)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu1s()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu1s");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu1s");
    set_bf_and_test(lv, v3, 3, 1, 1, 1, "BFu9ll_BFu16s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu1s, BFu9ll_BFu16s_BFu1s)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu31i()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu31i");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu31i lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu16s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu31i");
    set_bf_and_test(lv, v3, 3, 1, 31, 1, "BFu9ll_BFu16s_BFu31i");
    set_bf_and_test(lv, v3, 3, 1, 31, hide_ull(1LL<<30), "BFu9ll_BFu16s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu31i, BFu9ll_BFu16s_BFu31i)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu31ll()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu31ll");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu31ll lv;
    check2(sizeof(lv), 7, "sizeof(BFu9ll_BFu16s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu31ll");
    set_bf_and_test(lv, v3, 3, 1, 31, 1, "BFu9ll_BFu16s_BFu31ll");
    set_bf_and_test(lv, v3, 3, 1, 31, hide_ull(1LL<<30), "BFu9ll_BFu16s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu31ll, BFu9ll_BFu16s_BFu31ll)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu32i()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu32i");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu32i");
    set_bf_and_test(lv, v3, 3, 1, 32, 1, "BFu9ll_BFu16s_BFu32i");
    set_bf_and_test(lv, v3, 3, 1, 32, hide_ull(1LL<<31), "BFu9ll_BFu16s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu32i, BFu9ll_BFu16s_BFu32i)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu32ll()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu32ll");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu32ll");
    set_bf_and_test(lv, v3, 3, 1, 32, 1, "BFu9ll_BFu16s_BFu32ll");
    set_bf_and_test(lv, v3, 3, 1, 32, hide_ull(1LL<<31), "BFu9ll_BFu16s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu32ll, BFu9ll_BFu16s_BFu32ll)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu33()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu33");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu33");
    set_bf_and_test(lv, v3, 3, 1, 33, 1, "BFu9ll_BFu16s_BFu33");
    set_bf_and_test(lv, v3, 3, 1, 33, hide_ull(1LL<<32), "BFu9ll_BFu16s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu33, BFu9ll_BFu16s_BFu33)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu7c()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu7c");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu7c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu7c");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9ll_BFu16s_BFu7c");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9ll_BFu16s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu7c, BFu9ll_BFu16s_BFu7c)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu7i()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu7i");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu7i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu7i");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9ll_BFu16s_BFu7i");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9ll_BFu16s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu7i, BFu9ll_BFu16s_BFu7i)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu7ll()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu7ll");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu7ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu7ll");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9ll_BFu16s_BFu7ll");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9ll_BFu16s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu7ll, BFu9ll_BFu16s_BFu7ll)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu7s()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu7s");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu7s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu16s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu7s");
    set_bf_and_test(lv, v3, 3, 1, 7, 1, "BFu9ll_BFu16s_BFu7s");
    set_bf_and_test(lv, v3, 3, 1, 7, hide_ull(1LL<<6), "BFu9ll_BFu16s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu7s, BFu9ll_BFu16s_BFu7s)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu8c()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu8c");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu8c");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9ll_BFu16s_BFu8c");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9ll_BFu16s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu8c, BFu9ll_BFu16s_BFu8c)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu8i()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu8i");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu8i");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9ll_BFu16s_BFu8i");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9ll_BFu16s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu8i, BFu9ll_BFu16s_BFu8i)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu8ll()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu8ll");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu8ll");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9ll_BFu16s_BFu8ll");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9ll_BFu16s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu8ll, BFu9ll_BFu16s_BFu8ll)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu8s()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu8s");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu8s");
    set_bf_and_test(lv, v3, 3, 1, 8, 1, "BFu9ll_BFu16s_BFu8s");
    set_bf_and_test(lv, v3, 3, 1, 8, hide_ull(1LL<<7), "BFu9ll_BFu16s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu8s, BFu9ll_BFu16s_BFu8s)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu9i");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu9i");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9ll_BFu16s_BFu9i");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu9i, BFu9ll_BFu16s_BFu9i)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu9ll");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9ll_BFu16s_BFu9ll");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu9ll, BFu9ll_BFu16s_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFu16s_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFu16s_BFu9s");
    static STRUCT_IF_C BFu9ll_BFu16s_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_BFu9s");
    set_bf_and_test(lv, v3, 3, 1, 9, 1, "BFu9ll_BFu16s_BFu9s");
    set_bf_and_test(lv, v3, 3, 1, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_BFu9s, BFu9ll_BFu16s_BFu9s)
//============================================================================



static void Test_BFu9ll_BFu16s_C()
{
  {
    init_simple_test("BFu9ll_BFu16s_C");
    static STRUCT_IF_C BFu9ll_BFu16s_C lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16s_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_C");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_C");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_C");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16s_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_C, BFu9ll_BFu16s_C)
//============================================================================



static void Test_BFu9ll_BFu16s_D()
{
  {
    init_simple_test("BFu9ll_BFu16s_D");
    static STRUCT_IF_C BFu9ll_BFu16s_D lv;
    check2(sizeof(lv), 12, "sizeof(BFu9ll_BFu16s_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_D");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_D");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_D");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16s_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_D, BFu9ll_BFu16s_D)
//============================================================================



static void Test_BFu9ll_BFu16s_F()
{
  {
    init_simple_test("BFu9ll_BFu16s_F");
    static STRUCT_IF_C BFu9ll_BFu16s_F lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16s_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_F");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_F");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_F");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16s_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_F, BFu9ll_BFu16s_F)
//============================================================================



static void Test_BFu9ll_BFu16s_I()
{
  {
    init_simple_test("BFu9ll_BFu16s_I");
    static STRUCT_IF_C BFu9ll_BFu16s_I lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16s_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_I");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_I");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_I");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16s_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_I, BFu9ll_BFu16s_I)
//============================================================================



static void Test_BFu9ll_BFu16s_Ip()
{
  {
    init_simple_test("BFu9ll_BFu16s_Ip");
    static STRUCT_IF_C BFu9ll_BFu16s_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9ll_BFu16s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_Ip");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_Ip");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_Ip");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16s_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_Ip, BFu9ll_BFu16s_Ip)
//============================================================================



static void Test_BFu9ll_BFu16s_L()
{
  {
    init_simple_test("BFu9ll_BFu16s_L");
    static STRUCT_IF_C BFu9ll_BFu16s_L lv;
    check2(sizeof(lv), 12, "sizeof(BFu9ll_BFu16s_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_L");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_L");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_L");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16s_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_L, BFu9ll_BFu16s_L)
//============================================================================



static void Test_BFu9ll_BFu16s_S()
{
  {
    init_simple_test("BFu9ll_BFu16s_S");
    static STRUCT_IF_C BFu9ll_BFu16s_S lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16s_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_S");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_S");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_S");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16s_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_S, BFu9ll_BFu16s_S)
//============================================================================



static void Test_BFu9ll_BFu16s_Uc()
{
  {
    init_simple_test("BFu9ll_BFu16s_Uc");
    static STRUCT_IF_C BFu9ll_BFu16s_Uc lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu16s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_Uc");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_Uc");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_Uc");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16s_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_Uc, BFu9ll_BFu16s_Uc)
//============================================================================



static void Test_BFu9ll_BFu16s_Ui()
{
  {
    init_simple_test("BFu9ll_BFu16s_Ui");
    static STRUCT_IF_C BFu9ll_BFu16s_Ui lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu16s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_Ui");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_Ui");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_Ui");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16s_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_Ui, BFu9ll_BFu16s_Ui)
//============================================================================



static void Test_BFu9ll_BFu16s_Ul()
{
  {
    init_simple_test("BFu9ll_BFu16s_Ul");
    static STRUCT_IF_C BFu9ll_BFu16s_Ul lv;
    check2(sizeof(lv), 12, "sizeof(BFu9ll_BFu16s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_Ul");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_Ul");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_Ul");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16s_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_Ul, BFu9ll_BFu16s_Ul)
//============================================================================



static void Test_BFu9ll_BFu16s_Us()
{
  {
    init_simple_test("BFu9ll_BFu16s_Us");
    static STRUCT_IF_C BFu9ll_BFu16s_Us lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu16s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_Us");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_Us");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_Us");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16s_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_Us, BFu9ll_BFu16s_Us)
//============================================================================



static void Test_BFu9ll_BFu16s_Vp()
{
  {
    init_simple_test("BFu9ll_BFu16s_Vp");
    static STRUCT_IF_C BFu9ll_BFu16s_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9ll_BFu16s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu16s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu16s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu16s_Vp");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "BFu9ll_BFu16s_Vp");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "BFu9ll_BFu16s_Vp");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu16s_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu16s_Vp, BFu9ll_BFu16s_Vp)
//============================================================================



static void Test_BFu9ll_BFu17i()
{
  {
    init_simple_test("BFu9ll_BFu17i");
    static STRUCT_IF_C BFu9ll_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i, BFu9ll_BFu17i)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu15i()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu15i");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu15i");
    set_bf_and_test(lv, v3, 3, 2, 15, 1, "BFu9ll_BFu17i_BFu15i");
    set_bf_and_test(lv, v3, 3, 2, 15, hide_ull(1LL<<14), "BFu9ll_BFu17i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu15i, BFu9ll_BFu17i_BFu15i)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu15ll()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu15ll");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu15ll");
    set_bf_and_test(lv, v3, 3, 2, 15, 1, "BFu9ll_BFu17i_BFu15ll");
    set_bf_and_test(lv, v3, 3, 2, 15, hide_ull(1LL<<14), "BFu9ll_BFu17i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu15ll, BFu9ll_BFu17i_BFu15ll)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu15s()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu15s");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu15s");
    set_bf_and_test(lv, v3, 3, 2, 15, 1, "BFu9ll_BFu17i_BFu15s");
    set_bf_and_test(lv, v3, 3, 2, 15, hide_ull(1LL<<14), "BFu9ll_BFu17i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu15s, BFu9ll_BFu17i_BFu15s)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu16i()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu16i");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu16i");
    set_bf_and_test(lv, v3, 3, 2, 16, 1, "BFu9ll_BFu17i_BFu16i");
    set_bf_and_test(lv, v3, 3, 2, 16, hide_ull(1LL<<15), "BFu9ll_BFu17i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu16i, BFu9ll_BFu17i_BFu16i)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu16ll()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu16ll");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu16ll");
    set_bf_and_test(lv, v3, 3, 2, 16, 1, "BFu9ll_BFu17i_BFu16ll");
    set_bf_and_test(lv, v3, 3, 2, 16, hide_ull(1LL<<15), "BFu9ll_BFu17i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu16ll, BFu9ll_BFu17i_BFu16ll)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu16s()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu16s");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu16s");
    set_bf_and_test(lv, v3, 3, 2, 16, 1, "BFu9ll_BFu17i_BFu16s");
    set_bf_and_test(lv, v3, 3, 2, 16, hide_ull(1LL<<15), "BFu9ll_BFu17i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu16s, BFu9ll_BFu17i_BFu16s)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu17i()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu17i");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu17i");
    set_bf_and_test(lv, v3, 3, 2, 17, 1, "BFu9ll_BFu17i_BFu17i");
    set_bf_and_test(lv, v3, 3, 2, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu17i, BFu9ll_BFu17i_BFu17i)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu17ll()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu17ll");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu17ll");
    set_bf_and_test(lv, v3, 3, 2, 17, 1, "BFu9ll_BFu17i_BFu17ll");
    set_bf_and_test(lv, v3, 3, 2, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu17ll, BFu9ll_BFu17i_BFu17ll)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu1c()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu1c");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu17i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu1c");
    set_bf_and_test(lv, v3, 3, 2, 1, 1, "BFu9ll_BFu17i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu1c, BFu9ll_BFu17i_BFu1c)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu1i()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu1i");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu17i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu1i");
    set_bf_and_test(lv, v3, 3, 2, 1, 1, "BFu9ll_BFu17i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu1i, BFu9ll_BFu17i_BFu1i)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu1ll()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu1ll");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu17i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu1ll");
    set_bf_and_test(lv, v3, 3, 2, 1, 1, "BFu9ll_BFu17i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu1ll, BFu9ll_BFu17i_BFu1ll)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu1s()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu1s");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu17i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu1s");
    set_bf_and_test(lv, v3, 3, 2, 1, 1, "BFu9ll_BFu17i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu1s, BFu9ll_BFu17i_BFu1s)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu31i()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu31i");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu17i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu31i");
    set_bf_and_test(lv, v3, 3, 2, 31, 1, "BFu9ll_BFu17i_BFu31i");
    set_bf_and_test(lv, v3, 3, 2, 31, hide_ull(1LL<<30), "BFu9ll_BFu17i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu31i, BFu9ll_BFu17i_BFu31i)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu31ll()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu31ll");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu17i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu31ll");
    set_bf_and_test(lv, v3, 3, 2, 31, 1, "BFu9ll_BFu17i_BFu31ll");
    set_bf_and_test(lv, v3, 3, 2, 31, hide_ull(1LL<<30), "BFu9ll_BFu17i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu31ll, BFu9ll_BFu17i_BFu31ll)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu32i()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu32i");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu17i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu32i");
    set_bf_and_test(lv, v3, 3, 2, 32, 1, "BFu9ll_BFu17i_BFu32i");
    set_bf_and_test(lv, v3, 3, 2, 32, hide_ull(1LL<<31), "BFu9ll_BFu17i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu32i, BFu9ll_BFu17i_BFu32i)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu32ll()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu32ll");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu17i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu32ll");
    set_bf_and_test(lv, v3, 3, 2, 32, 1, "BFu9ll_BFu17i_BFu32ll");
    set_bf_and_test(lv, v3, 3, 2, 32, hide_ull(1LL<<31), "BFu9ll_BFu17i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu32ll, BFu9ll_BFu17i_BFu32ll)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu33()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu33");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu17i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu33");
    set_bf_and_test(lv, v3, 3, 2, 33, 1, "BFu9ll_BFu17i_BFu33");
    set_bf_and_test(lv, v3, 3, 2, 33, hide_ull(1LL<<32), "BFu9ll_BFu17i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu33, BFu9ll_BFu17i_BFu33)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu7c()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu7c");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu7c");
    set_bf_and_test(lv, v3, 3, 2, 7, 1, "BFu9ll_BFu17i_BFu7c");
    set_bf_and_test(lv, v3, 3, 2, 7, hide_ull(1LL<<6), "BFu9ll_BFu17i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu7c, BFu9ll_BFu17i_BFu7c)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu7i()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu7i");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu7i");
    set_bf_and_test(lv, v3, 3, 2, 7, 1, "BFu9ll_BFu17i_BFu7i");
    set_bf_and_test(lv, v3, 3, 2, 7, hide_ull(1LL<<6), "BFu9ll_BFu17i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu7i, BFu9ll_BFu17i_BFu7i)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu7ll()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu7ll");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu7ll");
    set_bf_and_test(lv, v3, 3, 2, 7, 1, "BFu9ll_BFu17i_BFu7ll");
    set_bf_and_test(lv, v3, 3, 2, 7, hide_ull(1LL<<6), "BFu9ll_BFu17i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu7ll, BFu9ll_BFu17i_BFu7ll)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu7s()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu7s");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu7s");
    set_bf_and_test(lv, v3, 3, 2, 7, 1, "BFu9ll_BFu17i_BFu7s");
    set_bf_and_test(lv, v3, 3, 2, 7, hide_ull(1LL<<6), "BFu9ll_BFu17i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu7s, BFu9ll_BFu17i_BFu7s)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu8c()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu8c");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu8c");
    set_bf_and_test(lv, v3, 3, 2, 8, 1, "BFu9ll_BFu17i_BFu8c");
    set_bf_and_test(lv, v3, 3, 2, 8, hide_ull(1LL<<7), "BFu9ll_BFu17i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu8c, BFu9ll_BFu17i_BFu8c)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu8i()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu8i");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu8i");
    set_bf_and_test(lv, v3, 3, 2, 8, 1, "BFu9ll_BFu17i_BFu8i");
    set_bf_and_test(lv, v3, 3, 2, 8, hide_ull(1LL<<7), "BFu9ll_BFu17i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu8i, BFu9ll_BFu17i_BFu8i)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu8ll()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu8ll");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu8ll");
    set_bf_and_test(lv, v3, 3, 2, 8, 1, "BFu9ll_BFu17i_BFu8ll");
    set_bf_and_test(lv, v3, 3, 2, 8, hide_ull(1LL<<7), "BFu9ll_BFu17i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu8ll, BFu9ll_BFu17i_BFu8ll)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu8s()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu8s");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu8s");
    set_bf_and_test(lv, v3, 3, 2, 8, 1, "BFu9ll_BFu17i_BFu8s");
    set_bf_and_test(lv, v3, 3, 2, 8, hide_ull(1LL<<7), "BFu9ll_BFu17i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu8s, BFu9ll_BFu17i_BFu8s)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu9i");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu9i");
    set_bf_and_test(lv, v3, 3, 2, 9, 1, "BFu9ll_BFu17i_BFu9i");
    set_bf_and_test(lv, v3, 3, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu9i, BFu9ll_BFu17i_BFu9i)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu9ll");
    set_bf_and_test(lv, v3, 3, 2, 9, 1, "BFu9ll_BFu17i_BFu9ll");
    set_bf_and_test(lv, v3, 3, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu9ll, BFu9ll_BFu17i_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFu17i_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFu17i_BFu9s");
    static STRUCT_IF_C BFu9ll_BFu17i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_BFu9s");
    set_bf_and_test(lv, v3, 3, 2, 9, 1, "BFu9ll_BFu17i_BFu9s");
    set_bf_and_test(lv, v3, 3, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_BFu9s, BFu9ll_BFu17i_BFu9s)
//============================================================================



static void Test_BFu9ll_BFu17i_C()
{
  {
    init_simple_test("BFu9ll_BFu17i_C");
    static STRUCT_IF_C BFu9ll_BFu17i_C lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17i_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_C");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_C");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_C");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17i_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_C, BFu9ll_BFu17i_C)
//============================================================================



static void Test_BFu9ll_BFu17i_D()
{
  {
    init_simple_test("BFu9ll_BFu17i_D");
    static STRUCT_IF_C BFu9ll_BFu17i_D lv;
    check2(sizeof(lv), 12, "sizeof(BFu9ll_BFu17i_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_D");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_D");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_D");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17i_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_D, BFu9ll_BFu17i_D)
//============================================================================



static void Test_BFu9ll_BFu17i_F()
{
  {
    init_simple_test("BFu9ll_BFu17i_F");
    static STRUCT_IF_C BFu9ll_BFu17i_F lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu17i_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_F");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_F");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_F");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17i_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_F, BFu9ll_BFu17i_F)
//============================================================================



static void Test_BFu9ll_BFu17i_I()
{
  {
    init_simple_test("BFu9ll_BFu17i_I");
    static STRUCT_IF_C BFu9ll_BFu17i_I lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu17i_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_I");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_I");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_I");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17i_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_I, BFu9ll_BFu17i_I)
//============================================================================



static void Test_BFu9ll_BFu17i_Ip()
{
  {
    init_simple_test("BFu9ll_BFu17i_Ip");
    static STRUCT_IF_C BFu9ll_BFu17i_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9ll_BFu17i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_Ip");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_Ip");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17i_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_Ip, BFu9ll_BFu17i_Ip)
//============================================================================



static void Test_BFu9ll_BFu17i_L()
{
  {
    init_simple_test("BFu9ll_BFu17i_L");
    static STRUCT_IF_C BFu9ll_BFu17i_L lv;
    check2(sizeof(lv), 12, "sizeof(BFu9ll_BFu17i_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_L");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_L");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_L");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17i_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_L, BFu9ll_BFu17i_L)
//============================================================================



static void Test_BFu9ll_BFu17i_S()
{
  {
    init_simple_test("BFu9ll_BFu17i_S");
    static STRUCT_IF_C BFu9ll_BFu17i_S lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17i_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_S");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_S");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_S");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17i_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_S, BFu9ll_BFu17i_S)
//============================================================================



static void Test_BFu9ll_BFu17i_Uc()
{
  {
    init_simple_test("BFu9ll_BFu17i_Uc");
    static STRUCT_IF_C BFu9ll_BFu17i_Uc lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_Uc");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_Uc");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17i_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_Uc, BFu9ll_BFu17i_Uc)
//============================================================================



static void Test_BFu9ll_BFu17i_Ui()
{
  {
    init_simple_test("BFu9ll_BFu17i_Ui");
    static STRUCT_IF_C BFu9ll_BFu17i_Ui lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu17i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_Ui");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_Ui");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17i_Ui.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_Ui, BFu9ll_BFu17i_Ui)
//============================================================================



static void Test_BFu9ll_BFu17i_Ul()
{
  {
    init_simple_test("BFu9ll_BFu17i_Ul");
    static STRUCT_IF_C BFu9ll_BFu17i_Ul lv;
    check2(sizeof(lv), 12, "sizeof(BFu9ll_BFu17i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_Ul");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_Ul");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17i_Ul.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_Ul, BFu9ll_BFu17i_Ul)
//============================================================================



static void Test_BFu9ll_BFu17i_Us()
{
  {
    init_simple_test("BFu9ll_BFu17i_Us");
    static STRUCT_IF_C BFu9ll_BFu17i_Us lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_Us");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_Us");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_Us");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17i_Us.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_Us, BFu9ll_BFu17i_Us)
//============================================================================



static void Test_BFu9ll_BFu17i_Vp()
{
  {
    init_simple_test("BFu9ll_BFu17i_Vp");
    static STRUCT_IF_C BFu9ll_BFu17i_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9ll_BFu17i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17i_Vp");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17i_Vp");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17i_Vp.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17i_Vp, BFu9ll_BFu17i_Vp)
//============================================================================



static void Test_BFu9ll_BFu17ll()
{
  {
    init_simple_test("BFu9ll_BFu17ll");
    static STRUCT_IF_C BFu9ll_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll, BFu9ll_BFu17ll)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu15i()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu15i");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu15i");
    set_bf_and_test(lv, v3, 3, 2, 15, 1, "BFu9ll_BFu17ll_BFu15i");
    set_bf_and_test(lv, v3, 3, 2, 15, hide_ull(1LL<<14), "BFu9ll_BFu17ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu15i, BFu9ll_BFu17ll_BFu15i)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu15ll()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu15ll");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v3, 3, 2, 15, 1, "BFu9ll_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v3, 3, 2, 15, hide_ull(1LL<<14), "BFu9ll_BFu17ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu15ll, BFu9ll_BFu17ll_BFu15ll)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu15s()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu15s");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu15s");
    set_bf_and_test(lv, v3, 3, 2, 15, 1, "BFu9ll_BFu17ll_BFu15s");
    set_bf_and_test(lv, v3, 3, 2, 15, hide_ull(1LL<<14), "BFu9ll_BFu17ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu15s, BFu9ll_BFu17ll_BFu15s)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu16i()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu16i");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu16i");
    set_bf_and_test(lv, v3, 3, 2, 16, 1, "BFu9ll_BFu17ll_BFu16i");
    set_bf_and_test(lv, v3, 3, 2, 16, hide_ull(1LL<<15), "BFu9ll_BFu17ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu16i, BFu9ll_BFu17ll_BFu16i)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu16ll()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu16ll");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v3, 3, 2, 16, 1, "BFu9ll_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v3, 3, 2, 16, hide_ull(1LL<<15), "BFu9ll_BFu17ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu16ll, BFu9ll_BFu17ll_BFu16ll)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu16s()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu16s");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu16s");
    set_bf_and_test(lv, v3, 3, 2, 16, 1, "BFu9ll_BFu17ll_BFu16s");
    set_bf_and_test(lv, v3, 3, 2, 16, hide_ull(1LL<<15), "BFu9ll_BFu17ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu16s, BFu9ll_BFu17ll_BFu16s)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu17i()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu17i");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu17i");
    set_bf_and_test(lv, v3, 3, 2, 17, 1, "BFu9ll_BFu17ll_BFu17i");
    set_bf_and_test(lv, v3, 3, 2, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu17i, BFu9ll_BFu17ll_BFu17i)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu17ll()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu17ll");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v3, 3, 2, 17, 1, "BFu9ll_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v3, 3, 2, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu17ll, BFu9ll_BFu17ll_BFu17ll)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu1c()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu1c");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu17ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu1c");
    set_bf_and_test(lv, v3, 3, 2, 1, 1, "BFu9ll_BFu17ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu1c, BFu9ll_BFu17ll_BFu1c)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu1i()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu1i");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu17ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu1i");
    set_bf_and_test(lv, v3, 3, 2, 1, 1, "BFu9ll_BFu17ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu1i, BFu9ll_BFu17ll_BFu1i)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu1ll()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu1ll");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu17ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v3, 3, 2, 1, 1, "BFu9ll_BFu17ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu1ll, BFu9ll_BFu17ll_BFu1ll)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu1s()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu1s");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(BFu9ll_BFu17ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu1s");
    set_bf_and_test(lv, v3, 3, 2, 1, 1, "BFu9ll_BFu17ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu1s, BFu9ll_BFu17ll_BFu1s)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu31i()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu31i");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu17ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu31i");
    set_bf_and_test(lv, v3, 3, 2, 31, 1, "BFu9ll_BFu17ll_BFu31i");
    set_bf_and_test(lv, v3, 3, 2, 31, hide_ull(1LL<<30), "BFu9ll_BFu17ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu31i, BFu9ll_BFu17ll_BFu31i)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu31ll()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu31ll");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu17ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v3, 3, 2, 31, 1, "BFu9ll_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v3, 3, 2, 31, hide_ull(1LL<<30), "BFu9ll_BFu17ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu31ll, BFu9ll_BFu17ll_BFu31ll)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu32i()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu32i");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu17ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu32i");
    set_bf_and_test(lv, v3, 3, 2, 32, 1, "BFu9ll_BFu17ll_BFu32i");
    set_bf_and_test(lv, v3, 3, 2, 32, hide_ull(1LL<<31), "BFu9ll_BFu17ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu32i, BFu9ll_BFu17ll_BFu32i)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu32ll()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu32ll");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu17ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v3, 3, 2, 32, 1, "BFu9ll_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v3, 3, 2, 32, hide_ull(1LL<<31), "BFu9ll_BFu17ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu32ll, BFu9ll_BFu17ll_BFu32ll)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu33()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu33");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu17ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu33");
    set_bf_and_test(lv, v3, 3, 2, 33, 1, "BFu9ll_BFu17ll_BFu33");
    set_bf_and_test(lv, v3, 3, 2, 33, hide_ull(1LL<<32), "BFu9ll_BFu17ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu33, BFu9ll_BFu17ll_BFu33)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu7c()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu7c");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu7c");
    set_bf_and_test(lv, v3, 3, 2, 7, 1, "BFu9ll_BFu17ll_BFu7c");
    set_bf_and_test(lv, v3, 3, 2, 7, hide_ull(1LL<<6), "BFu9ll_BFu17ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu7c, BFu9ll_BFu17ll_BFu7c)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu7i()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu7i");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu7i");
    set_bf_and_test(lv, v3, 3, 2, 7, 1, "BFu9ll_BFu17ll_BFu7i");
    set_bf_and_test(lv, v3, 3, 2, 7, hide_ull(1LL<<6), "BFu9ll_BFu17ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu7i, BFu9ll_BFu17ll_BFu7i)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu7ll()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu7ll");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v3, 3, 2, 7, 1, "BFu9ll_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v3, 3, 2, 7, hide_ull(1LL<<6), "BFu9ll_BFu17ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu7ll, BFu9ll_BFu17ll_BFu7ll)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu7s()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu7s");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu7s");
    set_bf_and_test(lv, v3, 3, 2, 7, 1, "BFu9ll_BFu17ll_BFu7s");
    set_bf_and_test(lv, v3, 3, 2, 7, hide_ull(1LL<<6), "BFu9ll_BFu17ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu7s, BFu9ll_BFu17ll_BFu7s)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu8c()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu8c");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu8c");
    set_bf_and_test(lv, v3, 3, 2, 8, 1, "BFu9ll_BFu17ll_BFu8c");
    set_bf_and_test(lv, v3, 3, 2, 8, hide_ull(1LL<<7), "BFu9ll_BFu17ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu8c, BFu9ll_BFu17ll_BFu8c)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu8i()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu8i");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu8i");
    set_bf_and_test(lv, v3, 3, 2, 8, 1, "BFu9ll_BFu17ll_BFu8i");
    set_bf_and_test(lv, v3, 3, 2, 8, hide_ull(1LL<<7), "BFu9ll_BFu17ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu8i, BFu9ll_BFu17ll_BFu8i)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu8ll()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu8ll");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v3, 3, 2, 8, 1, "BFu9ll_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v3, 3, 2, 8, hide_ull(1LL<<7), "BFu9ll_BFu17ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu8ll, BFu9ll_BFu17ll_BFu8ll)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu8s()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu8s");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu8s");
    set_bf_and_test(lv, v3, 3, 2, 8, 1, "BFu9ll_BFu17ll_BFu8s");
    set_bf_and_test(lv, v3, 3, 2, 8, hide_ull(1LL<<7), "BFu9ll_BFu17ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu8s, BFu9ll_BFu17ll_BFu8s)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu9i()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu9i");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu9i");
    set_bf_and_test(lv, v3, 3, 2, 9, 1, "BFu9ll_BFu17ll_BFu9i");
    set_bf_and_test(lv, v3, 3, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu9i, BFu9ll_BFu17ll_BFu9i)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu9ll()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu9ll");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v3, 3, 2, 9, 1, "BFu9ll_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v3, 3, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu9ll, BFu9ll_BFu17ll_BFu9ll)
//============================================================================



static void Test_BFu9ll_BFu17ll_BFu9s()
{
  {
    init_simple_test("BFu9ll_BFu17ll_BFu9s");
    static STRUCT_IF_C BFu9ll_BFu17ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_BFu9s");
    set_bf_and_test(lv, v3, 3, 2, 9, 1, "BFu9ll_BFu17ll_BFu9s");
    set_bf_and_test(lv, v3, 3, 2, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_BFu9s, BFu9ll_BFu17ll_BFu9s)
//============================================================================



static void Test_BFu9ll_BFu17ll_C()
{
  {
    init_simple_test("BFu9ll_BFu17ll_C");
    static STRUCT_IF_C BFu9ll_BFu17ll_C lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_C");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_C");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_C");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17ll_C.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_C, BFu9ll_BFu17ll_C)
//============================================================================



static void Test_BFu9ll_BFu17ll_D()
{
  {
    init_simple_test("BFu9ll_BFu17ll_D");
    static STRUCT_IF_C BFu9ll_BFu17ll_D lv;
    check2(sizeof(lv), 12, "sizeof(BFu9ll_BFu17ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_D");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_D");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_D");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17ll_D.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_D, BFu9ll_BFu17ll_D)
//============================================================================



static void Test_BFu9ll_BFu17ll_F()
{
  {
    init_simple_test("BFu9ll_BFu17ll_F");
    static STRUCT_IF_C BFu9ll_BFu17ll_F lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu17ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_F");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_F");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_F");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17ll_F.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_F, BFu9ll_BFu17ll_F)
//============================================================================



static void Test_BFu9ll_BFu17ll_I()
{
  {
    init_simple_test("BFu9ll_BFu17ll_I");
    static STRUCT_IF_C BFu9ll_BFu17ll_I lv;
    check2(sizeof(lv), 8, "sizeof(BFu9ll_BFu17ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_I");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_I");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_I");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17ll_I.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_I, BFu9ll_BFu17ll_I)
//============================================================================



static void Test_BFu9ll_BFu17ll_Ip()
{
  {
    init_simple_test("BFu9ll_BFu17ll_Ip");
    static STRUCT_IF_C BFu9ll_BFu17ll_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(BFu9ll_BFu17ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_Ip");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_Ip");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17ll_Ip.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_Ip, BFu9ll_BFu17ll_Ip)
//============================================================================



static void Test_BFu9ll_BFu17ll_L()
{
  {
    init_simple_test("BFu9ll_BFu17ll_L");
    static STRUCT_IF_C BFu9ll_BFu17ll_L lv;
    check2(sizeof(lv), 12, "sizeof(BFu9ll_BFu17ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_L");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_L");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_L");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17ll_L.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_L, BFu9ll_BFu17ll_L)
//============================================================================



static void Test_BFu9ll_BFu17ll_S()
{
  {
    init_simple_test("BFu9ll_BFu17ll_S");
    static STRUCT_IF_C BFu9ll_BFu17ll_S lv;
    check2(sizeof(lv), 6, "sizeof(BFu9ll_BFu17ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_S");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_S");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_S");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17ll_S.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_S, BFu9ll_BFu17ll_S)
//============================================================================



static void Test_BFu9ll_BFu17ll_Uc()
{
  {
    init_simple_test("BFu9ll_BFu17ll_Uc");
    static STRUCT_IF_C BFu9ll_BFu17ll_Uc lv;
    check2(sizeof(lv), 5, "sizeof(BFu9ll_BFu17ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(BFu9ll_BFu17ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "BFu9ll_BFu17ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "BFu9ll_BFu17ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "BFu9ll_BFu17ll_Uc");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "BFu9ll_BFu17ll_Uc");
    check_field_offset(lv, v3, 4, "BFu9ll_BFu17ll_Uc.v3");
  }
}
ARRANGE_TO_CALL_ME(Test_BFu9ll_BFu17ll_Uc, BFu9ll_BFu17ll_Uc)
//============================================================================

